さて、あなたは最初Version Helper
の機能を使用して、現在のWindowsのバージョンを確認する必要が.thankので、いくつかの間違いをご検討ください、SOに質問をしてに新しいです。次に、LoadLibrary
メソッドを使用してdllをロードします。あなたはWindows Vistaについて言及していないので、私はWindows XPのルールが適用されると考えています。
#include <versionhelper.h>
///...
HMODULE hLib = NULL;
if(IsWindows7OrGreater())
{
hLib = LoadLibrary(L"pegrp32d.dll");
}else
{
hLib = LoadLibrary(L"pegrp32c.dll");
}
if(!hLib)
//report an error
あなたはこのライブラリを静的にリンクしたい場合、あなたはあなたがにLIBファイルを選択するために、ターゲットプラットフォームと#pragma comment
命令を決定するために、マクロWINVER
を使用することができ、Windows XPおよびWindows 7用のアプリケーションの異なるバージョンを作成する必要がありますとのリンク。
#if WINVER >= _WIN32_WINNT_WIN7
#pragma comment(lib, "pegrp32d.lib")
#else
#pragma comment(lib, "pegrp32c.lib")
#endif
参考文献:
MSDN Version helper API
MSDN WINVER macro
あなたは、Visual Studioの旧バージョンを使用する場合は、latestプラットフォームSDKをインストールするか、GetVersion
API呼び出しを使用することができ、中で宣言windows.h
。ただし、この方法はWindows 8.1以降は使用できないため、この方法は推奨されません。
お返事ありがとうございました。 –
VS2005でVersionHelpers.hを使用するにはVS2005では使用できませんが、 "VersionHelpers.h"を取得中です:このようなファイルまたはディレクトリはありません "エラー –
最新のPlatform SDKをインストールするか、廃止予定の' GetVersion' API方法。 – Ari0nhh