win7 64位编译32位应用程序和64位应用程序

本文主要介绍了如何在Windows 7 64bit和Visual Studio 2010下生成64位程序。
       1). 新建一个Visual Studio Win32 Console项目,命名为test x64,test x64.cpp代码后附。这里我们还将比较32位与64位程序的浮点运算速度,以及他们调用dll库的异同。

       2). 在工具栏上单击"Solution Platforms",选择"Configuration Manager...",然后在"Active solution platform"中选择"<New...>"
win7 64位编译32位应用程序和64位应用程序_第1张图片        此步骤可详见 http://msdn.microsoft.com/zh-cn/library/ff407621.aspx
       3). 在"New Solution Platform"对话框中选择"x64"平台。单击确定。
win7 64位编译32位应用程序和64位应用程序_第2张图片
       4). 回到IDE界面上了,注意到现在的平台已经是x64了。

       5). 编译,链接,分别生成32位与64位程序。

       6). 按F5,开始调试,在output对话框中,我们可以看到32位和64位程序加载的dll不同。32位程序从SysWOW64中加载dll。 win7 64位编译32位应用程序和64位应用程序_第3张图片        而64位程序从System32中加载dll。
win7 64位编译32位应用程序和64位应用程序_第4张图片        System32 和SysWOW64的异同可参见如下链接
http://wenku.baidu.com/view/24dde1ec0975f46527d3e14c.html

       7). 本次试验中,32位和64位程序运行时间基本相同,速度快慢差异不大。

test x64.cpp代码
#include "stdafx.h"
#include <iostream>
#include <windows.h>           
#pragma comment(lib, "winmm")
using namespace std;
LARGE_INTEGER tickspersecond, tick, time_test;
int TimeCheck();
int _tmain(int argc, _TCHAR* argv[])
{
       cout << "Hello world!" << endl;
       double sum = 1;
       double temp = 0, max_iter = 500000000;
       double factor_sum = 1;
       unsigned long index = 1, begin = 0, end = 0;
       begin = TimeCheck();
       for (int i = 1; i < max_iter; ++i)
       {
              factor_sum *= i; 
              temp = 1 / factor_sum;
              sum += temp;
       }
       end = TimeCheck();
       cout << "Done in " << end - begin << " mill seconds!" << endl;
       cin.get();
       return 0;
         
int TimeCheck()             
{
  QueryPerformanceFrequenc y(&tickspersecond);
  QueryPerformanceCounter(&tick);
  time_test.QuadPart = 1000 * tick.QuadPart/tickspersecond.QuadPart;
  return ((int)time_test.QuadPart);
}

注:64位进程调用32位dll的方法
http://www.cnblogs.com/mazhenyu/archive/2007/06/28/798710.html

你可能感兴趣的:(win7,64位,Visual,Studio,32位,2010)