8

編集 2:わかりましたので、 #define KEY_WOW64_64KEY 0x0100を含む「winnt.h」を含む Orwell DevC++ に変更しましたが、まだ機能していません。(編集1を参照してください:)

編集 1: CodeBlock と DevC++ に付属する「winnt.h」を調べたところ、DevC++ には次の行がありません。

#if (_WIN32_WINNT >= 0x0502)
#define KEY_WOW64_64KEY 0x0100
#define KEY_WOW64_32KEY 0x0200
#endif

上記のコードを DevC++ の wint.h に配置しても機能しません。


元の投稿: タスクの 1 つとして 64 ビット アプリのレジストリを読み取る 32 ビット アプリケーション (DevC++ および Windows 7 64 ビットで開発) があるため、RegOpenKeyEx で「KEY_WOW64_64KEY」フラグを使用しようとしていますが、使用方法に関する投稿はほとんど見つかりませんでした。それと _WIN32_WINNT :これこれ

CodeBlock プロジェクト (テスト プロジェクト) で使用したときは魅力的に機能しましたが、同じコードが DevC++ では機能しません。コードブロックには他の問題があるため、今はコードブロックに移植できません。

DevC++ で動作させるにはどうすればよいですか?

ありがとう

4

2 に答える 2

16

使用する Windows ヘッダー ファイルのバージョンを定義します。それはあなたの前に宣言されなければなりません#include <Windows.h>

変更する場合は、他にもいくつかの同様の変数を設定する必要があります。

Windows ヘッダーを使用した MSDN

于 2013-02-27T12:15:07.073 に答える
1
  1. _WIN32_WINNT(0x0601)プリプロセッサ トークンであり、どこ_WIN32_WINNTで使用されても置き換えられます。プリプロセッサはファイル全体をスキャンし、見つかったすべてのものに置き換え_WIN32_WINNTます(0x0601)

ifdefプリプロセッサ定数を有効/無効にするプリプロセッサ ガードが存在する可能性があります。お気に入り:

#ifdef _WIN32_WINNT
#define KEY32 32
#endif

そこでは、 IFKEY32が定義されている場合にのみ定義されます。 _WIN32_WINNT

  1. すでに DevC++ で動作します。
于 2013-02-27T12:16:51.303 に答える