【问题标题】:MSVC outputs loading dlls of opposite "bitness"?MSVC 输出加载相反“位数”的 dll?
【发布时间】:2014-10-27 19:40:29
【问题描述】:

我一直在 Microsoft Visual C++ 2010 下在 64 位机器上开发一个项目,但我正在构建 32 位和 64 位二进制文​​件。当我尝试运行输出时,我发现我的 32 位输出仅从 SysWOW64 加载 dll,而我的 64 位构建是从 System32 加载的。这以前没有发生过。

我已将我认为与输出的“位数”相关的所有配置选项保留在适当的设置中(win32 平台为 32 位输出,x64 平台为 64 位输出)。是否有任何设置可能导致这种奇怪的混淆? (我很不清楚这种错误可能源自何处,但我对 Visual Studio 的经验不是很丰富,所以我对许多配置设置不熟悉)。

【问题讨论】:

  • 以前没有发生过这种情况。你确定吗? SysWOW64 的重点不是允许在 64 位窗口上运行 32 位应用程序吗? - 这种错误究竟是什么错误?
  • 这很正常,一直都是这样。强制文件系统重定向器以不同的方式执行此操作需要您绝不会偶然编写的非平凡代码。
  • 很抱歉让您感到困惑。详情见我的回答。

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


【解决方案1】:

嗯,它之前没有造成问题。无论如何,我最终解决了这个问题。我的路径在 32 位之前包含了 64 位 dll,所以它正在加载它们。它似乎仍然总是从相反位目录加载,但它现在可以正常工作。必须修改我的路径以首先放置 32 位 dll。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2010-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多