2010-08-28 101 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'。如果您能夠正確構建,那麼您可以將其更改回「靜態」以使用新庫。