Visual Studio のバージョン判定

naohiro19
記事: 256
登録日時: 15年前
住所: 愛知県

Visual Studio のバージョン判定

投稿記事 by naohiro19 » 8年前

Visual C++ のランタイムがインストールされているかどうかを以下のプログラムで判定することができます。

CODE:


#include 
#include 
#include 

using namespace std;

bool LoadDll(const TCHAR* lpszDllFileName) {
	HMODULE hDll = LoadLibrary(lpszDllFileName);
	if (hDll == NULL){
		FreeLibrary(hDll);
		return false;
	} else {
		return true;
	}
}

int main() {	

	if (LoadDll(TEXT("msvcp60.dll"))) cout << "このパソコンにはVisual C++ 6.0のランタイムがインストールされています。" << endl;
	else cout << "このパソコンにはVisual C++ Visual C++ 6.0のランタイムがインストールされていません。" << endl;

	if (LoadDll(TEXT("msvcp70.dll"))) cout << "このパソコンにはVisual C++ .NETのランタイムがインストールされています。" << endl;
	else cout << "このパソコンにはVisual C++ .NETのランタイムがインストールされていません。" << endl;

	if (LoadDll(TEXT("msvcp71.dll"))) cout << "このパソコンにはVisual C++ .NET 2003のランタイムがインストールされています。" << endl;
	else cout << "このパソコンにはVisual C++ .NET 2003のランタイムがインストールされていません。" << endl;

	if (LoadDll(TEXT("msvcp80.dll"))) cout << "このパソコンにはVisual C++ 2005のランタイムがインストールされています。" << endl;
	else cout << "このパソコンにはVisual C++ 2005のランタイムがインストールされていません。" << endl;

	if (LoadDll(TEXT("msvcp90.dll"))) cout << "このパソコンにはVisual C++ 2008のランタイムがインストールされています。" << endl;
	else cout << "このパソコンにはVisual C++ 2008のランタイムがインストールされていません。" << endl;

	if (LoadDll(TEXT("msvcp100.dll"))) cout << "このパソコンにはVisual C++ 2010のランタイムがインストールされています。" << endl;
	else cout << "このパソコンにはVisual C++ 2010のランタイムがインストールされていません。" << endl;
	
	if (LoadDll(TEXT("msvcp110.dll"))) cout << "このパソコンにはVisual C++ 2012のランタイムがインストールされています。" << endl;
	else cout << "このパソコンにはVisual C++ 2012のランタイムがインストールされていません。" << endl;

	if (LoadDll(TEXT("msvcp120.dll"))) cout << "このパソコンにはVisual C++ 2013のランタイムがインストールされています。" << endl;
	else cout << "このパソコンにはVisual C++ 2013のランタイムがインストールされていません。" << endl;

	if (LoadDll(TEXT("msvcp140.dll"))) cout << "このパソコンにはVisual C++ 2015のランタイムがインストールされています。" << endl;
	else cout << "このパソコンにはVisual C++ 2015のランタイムがインストールされていません。" << endl;
	return 0;
}
Windows APIの「LoadLibrary」関数を使って読み込みしてNULLが返ってくるならインストールされていないことを、NULLでない場合はインストール済みであることを示します。

コメントはまだありません。