2010-08-28 93 views
0

我已将VC6应用程序迁移到VS2005,我的所有代码都已编译并进行了一些更改,并且没有编译错误。 但我得到一个链接错误LNK1104。 LINK:致命错误LNK1104:无法打开文件“mfc42u.lib”mfc42u.dll从VC6迁移到VS2005时出错

我已经导入VC6的DSW在Visual Studio 2005中,从那里还指mfc42u.lib不知道(我假设它的图书馆VC6)。

请指导我如何摆脱这个错误。

+0

Um ... maaan将遗留问题迁移到遗留问题O.o – 2010-08-28 08:46:42

回答

0

这个库从项目设置的链接器部分引用,特别是“附加库”或类似的东西(不记得准确的设置名称) - 有需要链接的库需要在那里列出。所以,只需将mfc42u.lib替换为mfc8u.lib,或者与VS发行版一起安装的mfc的相关版本即可。

+0

无论如何您都不需要明确指定MFC静态库 - 如果您只是将该项目设置为使用MFC静态库,它应该自动选取合适的一个。我的建议是删除明确的参考。 – 2010-08-28 09:24:10

+0

我找不到明确引用mfc42u.lib文件的位置,我检查了项目属性中的所有位置。 以下是“连接器”的“命令行”中的选项: /OUT:"ReleaseU/HAB.dll“/ INCREMENTAL:NO/NOLOGO/DLL/MANIFEST /MANIFESTFILE:".\ReleaseU\HAB.dll.intermediate .manifest“/DEF:".\HAB.def”/DELAYLOAD:"OleAcc.dll“/ DEBUG /PDB:"ReleaseU/HAB.pdb”/MAP:".\ReleaseU/HAB.map“/ SUBSYSTEM:WINDOWS/BASE:“0x6800000”/IMPLIB:"ReleaseU/HAB.lib“/ MACHINE:X86/ERRORREPORT:PROMPT – 2010-08-28 10:37:23

+1

它可能不会在项目设置中引用,而是在'stdafx.h'中(或其中一个包含'afx * .h')使用'#pragma'语句。 – Praetorian 2010-08-28 10:44:30

0

可能您的链接器设置没有正确设置。转到项目设置 - >配置 - >常规 - >使用MFC库,并确保该值设置为'在共享库中使用MFC'。如果您能够正确构建,那么您可以将其更改回“静态”以使用新库。