VS2010编译64位程序的有关问题
VS2010编译64位程序的问题
我现在的管理器配置是x64,然后预处理里只定义了_WIN64,没有定义WIN32.
然后我在链接库的时候使用了如下命令
在用VS2010编译程序的时候,发现还是会流到WIN32这个分支里,请问是为什么,难道有什么默认的属性吗,怎么更改。
------解决方案--------------------
我只有VC2012的64位版本。在这个版本中是这样配制的(VC2010)应该类似:
1. 在程序的“属性->C++->预处理器"中确保当前的平台是x64(如果不是,则需要用配制管理器添加新的平台信息).
2. 即使当前已经设置了x64平台,为了后向兼容,系统还是会定义WIN32,可以在"preprocessor definitions"中去掉。这样就行了。下面是我测试的程序:
#ifdef WIN32
int a = 10;
#endif
#ifdef _WIN64
int a = 20;
#endif
void main()
{
int b = a;
}
b为20
我现在的管理器配置是x64,然后预处理里只定义了_WIN64,没有定义WIN32.
然后我在链接库的时候使用了如下命令
#ifdef WIN32
#pragma comment(lib, ".....")
#endif
#ifdef _WIN64
#pragma comment(lib, ".....")
#endif
在用VS2010编译程序的时候,发现还是会流到WIN32这个分支里,请问是为什么,难道有什么默认的属性吗,怎么更改。
------解决方案--------------------
我只有VC2012的64位版本。在这个版本中是这样配制的(VC2010)应该类似:
1. 在程序的“属性->C++->预处理器"中确保当前的平台是x64(如果不是,则需要用配制管理器添加新的平台信息).
2. 即使当前已经设置了x64平台,为了后向兼容,系统还是会定义WIN32,可以在"preprocessor definitions"中去掉。这样就行了。下面是我测试的程序:
#ifdef WIN32
int a = 10;
#endif
#ifdef _WIN64
int a = 20;
#endif
void main()
{
int b = a;
}
b为20