将VC++项目配置为64位平台

来源:互联网 发布:网络调查赚钱 编辑:程序博客网 时间:2024/05/29 14:46

将原有的程序由32位转换为64位程序,测试下程序性能提升幅度。程序的计算核心库主要是double的计算。

步骤如下:(参照https://msdn.microsoft.com/en-us/library/9yb4317s(v=vs.110).aspx)

1.打开你想配置的项目

2.打开项目的属性页

3.点击配置管理器(O)...打开配置管理器

4.点击下拉活动解决方案平台

5.点击新建...按钮

6.在键入或选择新平台下拉框中选择x64

7.点击确定按钮

8.点击关闭按钮

将win32配置拷贝到64位项目配置,下列选项Win32配置自动更新到项目中:

1. /MACHINE 选项设置为: /MACHINE:X64(项目属性-链接器-高级-目标计算机-MachineX64)

2.关闭注册输出(项目属性-链接器-常规-注册输出-否)

3.目标环境设置x64(项目属性-MIDL-常规-目标环境-基于 x64 的 64 位 Microsoft Windows (/env x64))

4.验证参数清空并重置为缺省参数(项目属性-MIDL-高级-验证参数)

5.调试信息格式设置被设置成/ZI在win32项目配置中,设置成/Zi在win64位项目配置中

这样编译出的程序就是64位程序了。

这里说的不是重点,下面说说重点:

也就是我转换的经验。

首先:项目是ATL创建的图形控件,显示各种图片和dxf。

在转换的过程中,控件编译正常,但是代理动态库编译失败,缺少 xxx._p.c xxx_i.c两个文件。

在网上查了也没有找到解决方案或者相关的信息。

其实这两个文件是控件那个动态库编译自动生成的,怎么能没有呢。

最开始研究的是控件动态库,发现单独编译他的时候这几个中间文件被成功的创建。

为啥编译代理动态库的时候他被删除了呢?继续谷歌还是没有类似的问题。

由于win32的程序正常,最后无照比较32和64的配置的不同点,最后发现:

32位的中间目录:$(Configuration)PS\

64位的中间目录:$(Platform)\$(Configuration)\

这里发现了不同点,$(Platform)这个可以忽略因为这是平台的名字。

后面的差别就是有无PS的问题了。这下恍然大悟,编译代理动态库的时候使用控件的目录和里面的配置文件当然删除

我们缺少的文件了。他们被清理了。

参照32位的修改64位的中间目录为:$(Platform)\$(Configuration)PS\

这下编译解决方案,ok!

这是我将ATL的COM组件配置为64位平台的经验!

0 0
原创粉丝点击