C++ Visual Studio 2012 64位系统上的32位编译

C++ Visual Studio 2012 64位系统上的32位编译,c++,visual-c++,dll,visual-studio-2012,32-bit,C++,Visual C++,Dll,Visual Studio 2012,32 Bit,我最近想为一个程序构建一个dll插件。问题是,程序是32位的,但是默认情况下,我的Visual Studio 2012的C++编译器创建64位二进制文件,我不知道如何更改它。我找到了配置管理器并试图创建一个新的平台,但只有X64作为选项。 我是否试图将目标体系结构设置在错误的位置?是否有更新或我可以下载的东西,以便我可以创建我的dll?有我可以设置的编译器开关吗 希望此屏幕有助于: 检查生成配置(Build->configurationmanager),并确保选择了32位的DLL项目 检查链接

我最近想为一个程序构建一个dll插件。问题是,程序是32位的,但是默认情况下,我的Visual Studio 2012的C++编译器创建64位二进制文件,我不知道如何更改它。我找到了配置管理器并试图创建一个新的平台,但只有X64作为选项。 我是否试图将目标体系结构设置在错误的位置?是否有更新或我可以下载的东西,以便我可以创建我的dll?有我可以设置的编译器开关吗

希望此屏幕有助于:

  • 检查生成配置(Build->configurationmanager),并确保选择了32位的DLL项目
  • 检查链接器设置,并确保提供了正确的路径
  • 构建之后,检查.DLL是否以正确的路径生成,并且是32位(应该是!)
您可以使用Dependency Walker检查DLL是32位还是64位。
您也没有提到此DLL是否使用了
/clr
选项。使用
/CLR
,生成托管二进制文件。尽管此选项不会改变二进制文件的位属性,但您可以检查是否存在这种情况。

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


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

您的活动平台是win32(即32位),那么您的问题是什么?您可能想测试这一点,这非常有用。您的屏幕截图清楚地显示您的项目没有创建64位可执行文件。您已将Win32配置作为默认配置。因此,当它提示您选择新平台时,它只提供64位选项。不管你的问题是什么,都不是你所想的。