在64位系统上编译32位Visual Studio 2012的过程

3
我最近想为一个程序创建一个dll插件。问题是,该程序是32位的,但是默认情况下我的Visual Studio 2012的C++编译器创建64位二进制文件,我不知道如何更改它 - 我已经找到了配置管理器并尝试创建新平台,但只有x64作为选项。
我是在错误的地方设置目标架构吗?有没有更新或其他东西可以下载,以便我可以创建我的dll?有没有编译器开关可以设置?
希望这个屏幕截图能帮助:

1
你的活跃平台是win32(也就是32位),那你有什么问题吗? 你可以尝试测试这个 PE检查器,它非常有帮助。 - rekire
7
您的截图清楚地显示,您的项目没有创建64位可执行文件。您的默认配置为Win32。因此,当它提示您选择新的平台时,只会提供64位选项。无论您遇到的问题是什么,都不是您想象中的那样。 - Hans Passant
2个回答

3

要构建32位架构,您需要打开项目属性窗口,然后选择链接器选项。

将“目标机器”选项的值设置为MachineX86。


2
  • 检查构建配置(Build -> Configuration Manager),确保你的32位DLL项目被选中。
  • 检查链接器设置,确保给出正确的路径。
  • 构建后,检查.DLL是否在正确的路径下生成,并且是32位的(应该是!)。

你可以使用Dependency Walker来检查DLL是32位还是64位。 你也没有提到是否在这个DLL中使用了/clr选项。使用/CLR,将会产生托管二进制文件。虽然这个选项不会改变二进制文件的位数,但你可以检查一下是否是这种情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接