2013-03-29 156 views
2

我最近想为一个程序构建一个dll插件。问题是,该程序是32位,但默认情况下,我的Visual Studio 2012的C++编译器创建64位二进制文​​件,我不知道如何更改它 - 我找到了配置管理器并试图创建一个新平台,但只有x64作为一个选项。64位系统上的Visual Studio 2012 32位编译

我想在错误的地方设置目标架构,或者是什么?是否有更新或我可以下载的东西,以便我可以创建我的DLL?有没有可以在某处设置的编译器开关?

希望这有助于屏幕:

enter image description here

+1

您的活动平台是win32(意味着32位),那么你的问题是什么?您可能想要测试这个[pe inspectore](http://www.ntcore.com/exsuite.php),这非常有帮助。 – rekire

+7

您的屏幕截图清楚地显示您的项目不是**创建64位可执行文件。您已将Win32配置作为默认配置。所以当它提示你一个**新**平台时,它只会提供64位选项。无论你的问题是什么,它都不是你想象的那样。 –

回答

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

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

2

要构建32位体系结构,必须打开项目属性窗口,然后打开链接器选项。

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