在visual studio中编译时查找C ++平台目标

时间:2014-04-11 08:52:28

标签: c++ visual-studio-2010 dll target platform

我正在为x86和x64平台构建我的解决方案。 Visual Studio是否有任何目标平台变量,因此我找到了我在编译时构建的平台?

例如:

HINSTANCE hinstLib; 
#ifdef TARGET_X86
hinstLib = LoadLibrary("32lib.dll"); 
#endif

#ifdef TARGET_X64
hinstLib = LoadLibrary("64lib.dll"); 
#endif

2 个答案:

答案 0 :(得分:2)

这就是我使用的:

#if defined(_MSC_VER)
     // Microsoft VC compiler
#    if defined(_WIN32)
#        if defined(_WIN64)
             // 64 bit windows
#        else
             // 32 bit windows
#        endif
#    endif
#endif

请注意,_WIN32 也定义为64位。

答案 1 :(得分:0)

看看这里:http://msdn.microsoft.com/en-US/library/b0084kay.aspx

_WIN64_M_X64应该有效。

所以对你的例子来说:

HINSTANCE hinstLib; 
#ifdef _WIN64
    hinstLib = LoadLibrary("64lib.dll"); 
#else
    hinstLib = LoadLibrary("32lib.dll"); 
#endif