【问题标题】:Visual Studio 2012 32bit compilation on 64bit system64位系统上的Visual Studio 2012 32位编译
【发布时间】:2013-03-20 07:38:50
【问题描述】:

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

我是在尝试将目标架构设置在错误的位置还是什么?是否有更新或我可以下载的东西,以便我可以创建我的 dll?有没有我可以在某处设置的编译器开关?

希望此屏幕有所帮助:

【问题讨论】:

  • 您的活动平台是win32(意思是32位)那么您的问题是什么?你可能想测试一下这个pe inspectore,它很有帮助。
  • 您的屏幕截图清楚地表明您的项目没有创建 64 位可执行文件。您已将 Win32 配置作为默认配置。因此,当它提示您选择 new 平台时,它只会提供 64 位选项。无论您的问题是什么,都不是您想的那样。

标签: c++ visual-c++ dll visual-studio-2012 32-bit


【解决方案1】:

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

将 Target Machine 选项的值设置为 MachineX86。

【讨论】:

    【解决方案2】:
    • 检查构建配置(构建 -> 配置管理器),并确保选择 32 位的 DLL 项目。
    • 检查链接器设置,确保给出正确的路径。
    • 构建后,检查 .DLL 是否在正确的路径生成,并且是 32 位(应该是!)。

    您可以使用 Dependency Walker 检查 DLL 是 32 位还是 64 位。 您也没有提到 /clr 选项是否与此 DLL 一起使用。使用/CLR,生成托管二进制文件。尽管此选项不会改变二进制文件的 bit-ness,但您可以检查是否是这种情况。

    【讨论】:

      猜你喜欢
      • 2018-09-20
      • 1970-01-01
      • 2011-11-11
      • 2011-06-30
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多