VS2013下的64位与32位程序配置

 
在Windows 7 64bit和Visual Studio 2013下生成64位程序。
  • 新建一个Visual Studio Win32 Console项目,命名为WinTestX64.

代码如下

#include "stdafx.h"

#include <iostream>
using namespace std; #define PRINT(a) cout << #a << ":" << a << endl void printSize(char aInFunc[]){
PRINT(sizeof(aInFunc));
} int _tmain(int argc, _TCHAR* argv[])
{
char a[] = "abc";
char *b = "abc";
PRINT(sizeof(a));
PRINT(sizeof(b));
printSize(a);
getchar(); return ;
}
  • 在工具栏上单击"Solution Platforms",选择"Configuration Manager...",然后在"Active solution platform"中选择"<New...>"

VS2013下的64位与32位程序配置-LMLPHP

  • 在"New Solution Platform"对话框中选择"x64"平台。单击确定。

VS2013下的64位与32位程序配置-LMLPHP

  • 回到IDE界面上了,注意到现在的平台已经是x64了。

VS2013下的64位与32位程序配置-LMLPHP

  • 编译,链接,分别生成32位与64位程序。
  • 按F5,开始调试,在output对话框中,我们可以看到32位和64位程序加载的dll不同。

32位程序从SysWOW64中加载dll。

  VS2013下的64位与32位程序配置-LMLPHP

而64位程序从System32中加载dll。

VS2013下的64位与32位程序配置-LMLPHP

分别用32bit和64bit的配置编译, 看看结果有何区别.

05-04 07:45