安装64位操作系统不是编译64位程序的必要条件,关键是要装64位程序的编译器。

1. 选择“Build” – “Configuration Manager”菜单,打开配置管理器。点击新建解决方案平台。

2. 选择“x64”平台,点击确定按钮。

3. 这时候配置管理器中的平台已经改成刚才选择的x64了,这时候编译出来的就是64位程序了。可以在工具栏的平台下拉框中快速切换目标平台。

4. 如果在选择平台的下拉列表里找不到x64,可能是没有安装x64编译支持。在VS安装程序里再装上就可以了。

工程配置管理的误区:

在VS2012中如果有多个工程,比如:

其中一个工程设置为X64,且设置为"Set as StartUp Project",这里设置的是WDMInstall工程 如图:

这是编译调试栏显示为:

可以看到这是一个X64的工程,当焦点移到切换到其它工程时比如test工程,编译调试栏还是会显示X64,如图:

这很容易让人误认为test工程也配置的是一个X64工程,其实不然,打开配置管理可以看到:

test工程是一个32位的工程,所以工程的配置还需要通过配置管理器具体配置,不能单从界面来看。

这个误区引发的问题:比如test中有函数SetupDiCallClassInstaller的调用,这里误以为test为X64,编译以后放到win7 64位的系统上,这时SetupDiCallClassInstaller函数调用失败,错误代码E0000235,原因是需要一个64位的程序(SetupDiCallClassInstaller函数对调用它的当前程序有要求的,必须是和系统位数相匹配的程序,比如当前是win7 X64 调用SetupDiCallClassInstaller函数的程序也必须是64位的 如果当前是WIN7 32 调用SetupDiCallClassInstaller函数的程序也必须是32位的 这个具体说来还是WOW64子系统支持不完善,关于WOW64子系统介绍详见:http://blog.csdn.net/whatday/article/details/10899335)如果进入误区认为test产生的就是一个X64的程序,那么这个问题将非常困惑。

VS中编译64位程序以及遇到的问题(E0000235)相关推荐

  1. windows下编译64位程序时没有没_WIN32定义

    _WIN32定义的初衷是为了区分16位和32位程序,但是目前很多项目的代码都是使用_WIN32来判定是否是windows平台,所以目前在windows平台下编译32位和64位程序时,编译器都会预定义了 ...

  2. Win32:编译64位程序的注意点

    有许多程序员在遇到32位程序内存超过2G就崩溃了,因为2G是32位程序用户空间的最大值,于是就选择编译成64位程序,认为64位内存空间就一下在上升到了64位地址空间最大值了. 这种理解是不对的.关键还 ...

  3. 在64位linux下编译32位程序

    一般情况下我们最好是在一个平台上编译本平台的二进制程序,比如在32位平台上编译32位程序而在64位平台上编译64位程序. 现在64位的系统(这里主要指x86_64系统,包括AMD64和Intel的EM ...

  4. 64位Ubuntu上编译32位程序

    1.确认主机为64位架构的内核,应该输出为adm64,执行: $ dpkg --print-architecture 2.确认打开了多支架功能,应该输出为i386,执行: $ dpkg --print ...

  5. Android编译32或64位程序

    ★★★ 个人博客导读首页-点击此处 ★★★ 1.查看一个程序是32位还是64位: $ readelf -h tee-supplicant ELF Header: Magic: 7f 45 4c 46 ...

  6. 使用VC6将32位程序编译成为64位程序(这个才是可行的)

    山上明月 使用VC6将32位程序编译成为64位程序 看了好多好多资料,自己也太过依赖现有的资料,按部就班不是真理不是真理!!! 主要内容是参照http://www.vckbase.com/docume ...

  7. 64位的GCC 编译32位程序

    64位的GCC 编译32位程序 编译32的程序,只需要加上-m32就可以了 gcc -m32 llong.c 但是提示下面的错误 /usr/bin/ld: 当搜索用于 /usr/lib/gcc/x86 ...

  8. 创世贴|怎么在64或32位系统中运行16位程序《大富翁》

    创世贴|怎么在64或32位系统中运行16位程序<大富翁> 绪言 大家好!纵观游戏行业的发展,可谓是进步迅猛.百花齐放.游戏是每个人在学习.工作之余休闲娱乐的良药.玩游戏的人从皇宫贵族到社会 ...

  9. CentOS下编译64位的libpython2.6.so.1.0库

    CentOS下编译64位的libpython2.6.so.1.0库 - Cody的专栏 - 博客频道 - CSDN.NET CentOS下编译64位的libpython2.6.so.1.0库 2011 ...

最新文章

  1. C++__min_element()和max_element()函数的使用
  2. 学编程当中最重要的三点,一些很正经的建议
  3. 『设计模式』JAVA I/O 与装饰者模式UML图
  4. 图Graph--拓扑排序(Topological Sorting)
  5. mysql y_关于MySQL中Y和~问题
  6. LINQ学习中需要明确的几点问题
  7. PHP设计模式系列 - 数据访问对象模式
  8. Android6.0之后的权限机制对App开发的影响
  9. JS实现购物车全选、不选、反选的功能(十七)
  10. 小猿圈WEB前端之HTML5+CSS3面试题(一)
  11. C语言中的空字符'\0'
  12. Python 爬取 猫眼 top100 电影例子
  13. 如何选择适合自己的相机?
  14. 计算机sci多少页,sci论文一般多少页
  15. 选择合适的电阻型分压器
  16. vant 中 van-address-edit地址编辑 地址回显获取 areaCode
  17. unity调用安卓手机物理返回键和home键
  18. 如何群发邮件?群发邮件让发收件人互相不知道?邮箱群发邮件技巧
  19. 手机评测 三星V-208
  20. python 编辑距离_最小编辑距离(Levenshtein)的 Python 实现

热门文章

  1. 如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例
  2. 6款实用开源报表工具 | 码云周刊第 83 期
  3. 聊聊redis的HealthIndicator
  4. JavaScript随机生成颜色以及十六进制颜色 与RGB颜色值的相互转换
  5. node.js之path模块的使用
  6. 搜索suggest实现 动态的查询建议
  7. c++ string c_str() 和data()区别
  8. android 源码下载编译
  9. 微软拟对Office 2007增添新功能 增强安全性
  10. C++ 数字、string 简便互转