【问题标题】:Why visual studio is linking MSVCR90.dll (x86) on 64 Bit platform?为什么 Visual Studio 在 64 位平台上链接 MSVCR90.dll (x86)?
【发布时间】:2011-08-06 14:58:57
【问题描述】:

我正在为 MATLAB(mex 文件)编写一个库。在开发时,我使用了 Visual Studio 2008 中的调试配置文件。在调试模式下一切都很好。 MATLAB 正确执行我的库。

当我在 Visual Studio 中切换到发布模式时,MATLAB 无法加载我的库(名为 .mexw64 的 dll)。使用 Dependency Walker 我看到调试版本正在链接 MSVCR90D.dll (x64),但发布版本正在链接 MSVCR90.dll (x86)。

调试配置:/MDd 发布配置:/MD

有什么想法吗?

【问题讨论】:

  • 使用构建 + 配置管理器。
  • 你如何测试它实际上是32位版本的DLL? 32 位和 64 位名称相同,但它们是不同的文件。

标签: c++ matlab 32bit-64bit mex msvcr90.dll


【解决方案1】:

是的。您没有在发布配置中将项目转为 64 位。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。使用依赖walker我发现它不是我的程序,它是使用Visual Studio 9编译的Oracle的oraocci11d.dll,所以它需要msvcr90d.dll。我刚刚下载了VS 2010编译的库

    【讨论】:

      【解决方案3】:

      您可能在某处有一个清单文件错误地指定了 libmsvcrt 的体系结构(如 x86)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-28
        • 1970-01-01
        • 2011-01-07
        • 1970-01-01
        • 1970-01-01
        • 2013-09-21
        • 2011-08-31
        • 1970-01-01
        相关资源
        最近更新 更多