2014-10-08 40 views
0

我有這個舊項目現在分配給我照顧。它包含2個dll-s和一個在.net 2003 C++上編寫的ocx,它們可以在彼此之間進行通信,並可以與更大的應用程序進行通信。我需要對它們進行更改,但是當我嘗試構建ocx時,我得到了8個LNK2019未解決的外部錯誤,我不知道如何解決。其中一個dll-s在構建整個解決方案時也會出現這些LNK2019錯誤,但它仍會生成.dll。據我所知,自從上一次成功建造它們以來,項目並沒有發生變化。我不認爲代碼或項目設置有任何問題。我使用的Oracle虛擬機與Windows XP能夠運行.NET 2003舊的.net項目中無法解析的外部項目

的錯誤輸出:

mfcs42.lib(dllmodul.obj) : error LNK2019: unresolved external symbol "public: __thiscall AFX_MODULE_STATE::AFX_MODULE_STATE(int,long (__stdcall*)(struct HWND__ *,unsigned int,unsigned int,long),unsigned long)" ([email protected]@[email protected][email protected]@[email protected]@Z) referenced in function "public: __thiscall _AFX_DLL_MODULE_STATE::_AFX_DLL_MODULE_STATE(void)" ([email protected]@[email protected]) 
mfcs42.lib(dllmodul.obj) : error LNK2019: unresolved external symbol "public: __thiscall AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(class AFX_MODULE_STATE *)" ([email protected]@[email protected][email protected]@@Z) referenced in function "long __stdcall AfxWndProcDllStatic(struct HWND__ *,unsigned int,unsigned int,long)" ([email protected]@[email protected]@[email protected]) 
mfcs42.lib(oleexp.obj) : error LNK2001: unresolved external symbol "public: __thiscall AFX_MAINTAIN_STATE2::AFX_MAINTAIN_STATE2(class AFX_MODULE_STATE *)" ([email protected]@[email protected][email protected]@@Z) 
mfcs42.lib(dllmodul.obj) : error LNK2019: unresolved external symbol "void __stdcall AfxTermExtensionModule(struct AFX_EXTENSION_MODULE &,int)" ([email protected]@[email protected]@[email protected]) referenced in function [email protected] 
mfcs42.lib(dllmodul.obj) : error LNK2019: unresolved external symbol "class AFX_MODULE_STATE * __stdcall AfxSetModuleState(class AFX_MODULE_STATE *)" ([email protected]@[email protected]@[email protected]@Z) referenced in function [email protected] 
mfcs42.lib(dllmodul.obj) : error LNK2019: unresolved external symbol "public: __thiscall CDynLinkLibrary::CDynLinkLibrary(struct AFX_EXTENSION_MODULE &,int)" ([email protected]@[email protected][email protected]@[email protected]) referenced in function [email protected] 
mfcs42.lib(dllmodul.obj) : error LNK2019: unresolved external symbol "int __stdcall AfxInitExtensionModule(struct AFX_EXTENSION_MODULE &,struct HINSTANCE__ *)" ([email protected]@[email protected]@[email protected]@@Z) referenced in function [email protected] 
mfcs42.lib(dllmodul.obj) : error LNK2019: unresolved external symbol "void __stdcall AfxCoreInitModule(void)" ([email protected]@YGXXZ) referenced in function [email protected] 
libcmt.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function _mainCRTStartup 
.\..\DLL\ImpDplanX.ocx : fatal error LNK1120: 8 unresolved externals 

我讀了提出的解決方案,但不知道如何確定什麼是真正的從列出的所有可能的原因。或者如何解決它。

+0

也許如果你分享什麼是未解決的外部錯誤,更多的人將能夠幫助你。 – leparlon 2014-10-08 14:45:10

回答

1

鏈接錯誤可以有多種原因:

其中符號(S)從庫中移除了對環境
  • 不滿意依賴
    1. 更新環境,即圖書館是太舊了包含特定符號(S)
    2. 是定義了這些符號(S)
    3. 錯誤的編譯環境(錯誤連接標誌,搜索路徑等)
    4. 打造的是做錯了(也許有些dependencie缺少源文件s沒有明確指出構建系統,需要通過以某種順序構建某些子項目來手動保存)

    沒有更多信息,幾乎不可能說出問題所在。

  • +0

    你需要什麼信息?如果需要,我可以上傳整個項目。這是允許的,因爲它甚至不會讓我附上照片? – mertol 2014-10-08 14:46:44

    相關問題