我正在使用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的权利吗?
谢谢
发布于 2012-08-21 09:43:44
您不希望定义自己的宏来检测Windows7,请使用微软提供的 -只在以下代码中包装您的Win7代码:
#ifdef _WIN32_WINNT_WIN7
xyz()
#endif如果您确实创建了自己的函数,则必须在要为Windows7编译时定义它,似乎您隐藏了SelDllDirectory()函数- #ifndef的意思是“如果没有定义”,所以如果WIN7宏没有在任何地方定义,那么您就得到了该函数。
发布于 2012-08-21 09:41:47
_WIN32_WINNT怎么样?
https://stackoverflow.com/questions/12052058
复制相似问题