我有2個項目在c + +(MFC) 一個是我在第二個(一個可執行的)使用的庫項目。兩個項目之間的MFC CString鏈接器錯誤
他們一起工作很好,直到我從以CString作爲參數的常規項目中調用一個函數。我得到這樣
error LNK2019: unresolved external symbol "public: void __thiscall
CTextDisplay::SetText1(class ATL::CStringT<wchar_t,class StrTraitMFC_DLL<wchar_t,
class ATL::ChTraitsCRT<wchar_t> > >)" ([email protected]@@[email protected]_WV?
[email protected][email protected][email protected]@@@@@[email protected]@@Z) referenced in function
"public: void __thiscall CManualPane::SetBeadCountFor(int,double)"
([email protected]@@[email protected]) C:\source\IQ-Project\IQ\ManualPane.obj IQ
可執行項目鏈接錯誤有其字符集UNICODE但圖書館有它設置爲MULTY字節chatacter集。我真的不能改變他們沒有得到可笑的錯誤數量。
有什麼建議嗎?
編輯:我們在這兩個項目中有不同設置的原因是因爲可執行項目基本上是一個我的團隊沒有構建或創建的外部項目。我們只需把它帶入並使用它。圖書館項目是我們幾年來一直在努力的事情。
在調用接受一個int庫中的函數去(例如)沒有問題 – irco 2013-02-18 17:21:55
我不確定哪一個你稱爲*正規項目*,但假設你在庫項目中調用一個函數返回一個'CString',嘗試將返回值存儲爲一個'CStringA '在exe項目中。但即使編譯成功,如果兩者的UNICODE設置不同,我也會對從庫中傳入MFC類型保持警惕。 – Praetorian 2013-02-18 17:26:56
'CString'類型的參數在設計庫的接口時是非常邪惡的事情。 – LihO 2013-02-18 17:29:05