2013-02-27 116 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

相关问题