为Windows 7定义预处理程序指令

时间:2012-08-21 09:37:13

标签: c++ compiler-errors preprocessor-directive

我正在使用SetDllDirectory()并想知道如何为Windows 7 HP 64位定义指令我想的是这样的:

在预处理程序指令中:

 Add WIN7

在.cpp中我想添加类似

的内容
#ifndef WIN7<- where the function is used
SetDllDirectory();
#endif

但是只要我添加语句,SetDllDirectory就会被注释。

这是我尝试过的,我在预处理器定义中添加 WIN7 并添加:

#if defined(__WIN7__)
if (regkeyExists) {
    if (regkey->HasValue("LibPath")) {
        regkey->QueryValue("LibPath", value);
        if (!value.empty()) {
            wxSetEnv("ABCLib", value);
            SetDllDirectory(value.c_str());
        }
    }

}
SetDllDirectory("C:\\Program Files\\ABC\\ABCProject\\lib");
#endif

这是声明Windows 7的权利吗

由于

2 个答案:

答案 0 :(得分:2)

您不想定义自己的宏来检测Windows 7,使用ones provided by Microsoft - 将您的Win7专用代码包装在:

#ifdef _WIN32_WINNT_WIN7 
xyz()
#endif

如果你创建了自己的,你必须在想要为Windows 7编译时定义它,似乎你隐藏了SelDllDirectory()函数 - #ifndef意味着“如果没有定义”那么如果WIN7宏不是在任何地方定义,然后你得到那个功能。

答案 1 :(得分:1)