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...>"
Windows <wbr>7 <wbr>64bit和Visual <wbr>Studio <wbr>2010下的64位与32位程序配置,dll使用,与性能初步比较        此步骤可详见 http://msdn.microsoft.com/zh-cn/library/ff407621.aspx
       3). 在"New Solution Platform"对话框中选择"x64"平台。单击确定。
Windows <wbr>7 <wbr>64bit和Visual <wbr>Studio <wbr>2010下的64位与32位程序配置,dll使用,与性能初步比较
       4). 回到IDE界面上了,注意到现在的平台已经是x64了。
Windows <wbr>7 <wbr>64bit和Visual <wbr>Studio <wbr>2010下的64位与32位程序配置,dll使用,与性能初步比较
       5). 编译,链接,分别生成32位与64位程序。

       6). 按F5,开始调试,在output对话框中,我们可以看到32位和64位程序加载的dll不同。32位程序从SysWOW64中加载dll。 Windows <wbr>7 <wbr>64bit和Visual <wbr>Studio <wbr>2010下的64位与32位程序配置,dll使用,与性能初步比较        而64位程序从System32中加载dll。
Windows <wbr>7 <wbr>64bit和Visual <wbr>Studio <wbr>2010下的64位与32位程序配置,dll使用,与性能初步比较        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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值