我已經打開了一個libray及其測試工具的舊工作區.它過去工作正常,但現在不起作用,舊版本的程式碼也不起作用,也有相同的錯誤.我已經嘗試重新建立專案,這也會導致相同的錯誤.在專案設定中似乎沒有任何錯誤,生成的程式碼在主應用程式中工作.
我已經刪除了大多數檔案,並將其降低到生成錯誤的最低限度.不幸的是,我無法釋出專案,因為這在生產程式碼中使用.
我通常得到的LNK2001連結器錯誤意味著我已經離開庫或忘記實現虛擬函式.但這是標準模板庫的一部分 – 並且是標題.
列為在IOCompletionPort.obj中遇到問題的程式碼實際上並不直接使用std::string
,但是呼叫的類是:Comms::Exception
接受std::string
和GetLastError
或WSAGetLastError
的值.
錯誤中提到的函式(GetMessage
)已經實現,但是是是一個虛擬函式,所以其他類可以在需要時覆蓋它.但是,似乎編譯器已經將其作為Ansi版本,但我在可以控制的設定中找不到任何選項.我懷疑這可能是問題,但由於庫的選項方法很少,我無法確定.但是,在編譯器選項中指定_MBCS的兩個專案.
------------------------------------------------------------------------------------------------------------------------------------- * 錯誤LNK2001:未解決的外部符號"公共:虛擬類 STD :: basic_string,類 std :: allocator>__thiscall 逗號:: exception:: GetMessageA(void)const“(? [email protected] [email protected]@@UBE? [email protected][email protected]@[email protected][email protected]@[email protected]@[email protected]) 除錯/ TestComms.exe:致命錯誤LNK1120:1個未解決的外部 執行link.exe的錯誤.
TestComms.exe – 2個錯誤,0個警告
有什麼建議嗎?我今天早上大部分時間都失去了,也不想損失下午的大部分時間。