Visual studio 2010 VS2008升级到VS2010“;无法打开文件';mfc90d.lib'&引用; 我试图把Visual C++ 2008项目升级到Visual C++ 2010项目。当升级完成并强制执行时,出现以下错误: 致命错误LNK1104:无法打开文件“mfc90d.lib”

Visual studio 2010 VS2008升级到VS2010“;无法打开文件';mfc90d.lib'&引用; 我试图把Visual C++ 2008项目升级到Visual C++ 2010项目。当升级完成并强制执行时,出现以下错误: 致命错误LNK1104:无法打开文件“mfc90d.lib”,visual-studio-2010,visual-c++,upgrade,Visual Studio 2010,Visual C++,Upgrade,我认为它应该引用“mfc100d.lib”,我尝试了很多方法来修复它,但都失败了 有人遇到同样的问题吗?可能的原因包括 a) 您没有重建所有源文件-请尝试删除所有输出obj和lib以确保 b) 您正在链接使用VC9构建的第三方静态库-您将需要VC10版本 c) 标题路径指向VC9标题(请检查解决方案的路径选项) d) 由于某些其他原因,您的项目包含对mfc90d的明确引用 下一个诊断步骤:在链接器上设置/verbose选项,并精确计算mfc90d.lib中拖动的对象 Martyn我通过对所有源文

我认为它应该引用“mfc100d.lib”,我尝试了很多方法来修复它,但都失败了


有人遇到同样的问题吗?

可能的原因包括

a) 您没有重建所有源文件-请尝试删除所有输出obj和lib以确保 b) 您正在链接使用VC9构建的第三方静态库-您将需要VC10版本 c) 标题路径指向VC9标题(请检查解决方案的路径选项) d) 由于某些其他原因,您的项目包含对mfc90d的明确引用

下一个诊断步骤:在链接器上设置/verbose选项,并精确计算mfc90d.lib中拖动的对象


Martyn

我通过对所有源文件进行全局搜索,查找定义“\u MFC\u FILENAME\u VER”,找到了丢失的MFC100.dll的问题。我在我的一个头文件中找到了以下定义:

#define _MFC_FILENAME_VER 100
在该区块中使用的:

#ifdef _DEBUG
#pragma comment(lib, "mfc" _MFC_FILENAME_VER "d.lib")
#pragma comment(lib, "mfcs" _MFC_FILENAME_VER "d.lib")
#else
#pragma comment(lib, "mfc" _MFC_FILENAME_VER ".lib")
#pragma comment(lib, "mfcs" _MFC_FILENAME_VER ".lib")
#endif
我把它改成:

#define _MFC_FILENAME_VER 110

因此,它将使用VS 2012版本的MFC(mfc110d.lib)进行编译。

您有64位操作系统吗?非常感谢。我发现原因是b)我正在链接一个用VC9.well@user755226构建的第三方静态库:我面临着几乎相同的问题。。我的问题是“链接:致命错误LNK1104:无法打开文件“mfc100d.lib”。你能告诉我你对你的问题做了什么吗。。我认为问题几乎是一样的。。很抱歉,我无法发布任何问题,因为我的问题会话已关闭,。你能帮我吗谢谢