您的位置:首页 > 其它

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

2013-08-31 23:15 357 查看
安装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的程序,那么这个问题将非常困惑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: