2013-02-27 117 views
4

編輯2:好了,所以我改變了奧威爾DEVC++包含包含的#define KEY_WOW64_64KEY 0100的「WINNT.H」,但它仍然是行不通的。 (請參閱編輯1 :)什麼是_WIN32_WINNT,它是如何工作的?

編輯1:我看着沿着代碼塊和DEVC++和DEVC++的缺失傳來 「WINNT.H」 下面幾行:

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

將上面的代碼放在DevC++的wint.h中不起作用。


原貼: 我有一個32位應用程序(在DEVC發展++和Windows 7 64位)讀取一個64位應用程序的註冊表,其任務之一,所以我試圖用「KEY_WOW64_64KEY」標誌RegOpenKeyEx,並找到有關如何使用_WIN32_WINNT使用幾個崗位:thisthis

它的工作般的魅力,當我在一個代碼塊項目(測試項目),但相同的代碼不與DEVC工作用它++,我可以現在由於代碼塊出現其他問題,現在將它移植到代碼塊。

如何使它與DevC++一起工作?

感謝

+6

對於問題1:您是否嘗試在谷歌中插入_WIN32_WINNT,這會直接導致相關的Microsoft文檔? – 2013-02-27 12:15:12

+0

您可以根據[標準Windows平臺SDK](http://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx)獲取DevC++嗎?然後它應該工作。你能給我們提供關於它在DevC++中不起作用的更多信息嗎? – Rup 2013-02-27 12:16:57

+0

@Rup不知道你的意思。 – StudentX 2013-02-28 08:00:24

回答

10

它定義Windows頭文件中使用的版本。它必須在您之前申報#include <Windows.h>

還有,如果你要修改你應該設置一些其他類似的變量:

MSDN Using Windows Headers

2
  1. _WIN32_WINNT是預處理記號,這是由(0x0601)更換任何地方使用_WIN32_WINNT 。預處理器只是掃描整個文件,並將它們全部替換爲_WIN32_WINNT(0x0601)

機會是,可能有ifdef預處理器保護,將啓用/禁用預處理器常量。像:

#ifdef _WIN32_WINNT 
#define KEY32 32 
#endif 

在那裏,KEY32只會被定義IF_WIN32_WINNT定義。

  1. 它已經適用於DevC++。
+0

*很有可能會出現ifdef預處理器保護,它將啓用/禁用預處理器常量*。我不認爲是這樣,因爲相同的代碼適用於CodeBlock。 – StudentX 2013-02-28 08:42:48

相關問題