C++ 为什么visual studio在64位平台上链接MSVCR90.dll(x86)?

C++ 为什么visual studio在64位平台上链接MSVCR90.dll(x86)?,c++,matlab,32bit-64bit,mex,msvcr90.dll,C++,Matlab,32bit 64bit,Mex,Msvcr90.dll,我正在为MATLAB编写一个库(mex文件)。在开发过程中,我使用了VisualStudio2008中的调试配置文件。调试模式下一切正常。MATLAB正确执行我的库 当我在visual studio中切换到relase模式时,MATLAB无法加载我的库(名为.mexw64的dll)。使用Dependency Walker,我看到调试版本链接MSVCR90D.dll(x64),而发布版本链接MSVCR90.dll(x86) 调试配置:/MDd 发布配置:/MD 有什么想法吗?是的。您没有在版本配置

我正在为MATLAB编写一个库(mex文件)。在开发过程中,我使用了VisualStudio2008中的调试配置文件。调试模式下一切正常。MATLAB正确执行我的库

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

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


有什么想法吗?

是的。您没有在版本配置中将项目转换为64位。

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

我也遇到了同样的问题。使用dependency walker,我发现它不是我的程序,而是Oracle的Oracocci11d.dll,它是使用visual studio 9编译的,所以它需要msvcr90d.dll。我刚刚下载了在VS2010中编译的库

使用Build+Configuration Manager。您如何测试它实际上是32位版本的DLL?32位和64位的名称相同,但它们是不同的文件。