2

API RegDeleteKeyまたはRegDeleteKeyExを使用して、いくつかのレジストリ キーを再帰的に削除するアプリを作成しています。気になるのは、RegDeleteKeyExがXP x64 Professional未満に対して定義されていないため、この制限によりアプリが制限されていることです。XP x86 から Win7 x64 まで互換性のある両方の API を使用できる方法はありますか?

4

1 に答える 1

0

RegDeleteKeyEx存在しない古いシステムでアプリを実行するには、この API への静的リンクを避ける必要があります。つまり、この関数を直接使用するのではなく、実行時に を介してポインタを取得しますGetProcAddress。成功すると、API が利用可能になり、使用できるようになります (または、OS のバージョンを確認できます)。

ここを見てください: RegDeleteKeyEx を使用するにはどうすればよいですか:

   hAdvAPI32 = LoadLibrary(_T("AdvAPI32.dll"));
   ASSERT(hAdvAPI32 != NULL);
   _RegDeleteKeyEx = (PFN_RegDeleteKeyEx)GetProcAddress(hAdvAPI32 , "RegDeleteKeyEx");
   ASSERT(_RegDeleteKeyEx != NULL);

RegDeleteKeyすべてのターゲット プラットフォームに存在するため、直接使用できます。

于 2012-10-09T10:25:44.617 に答える