試圖連接一個Win32的EXE項目時,我得到這個錯誤。我已鏈接到包含此方法的代碼的lib中。但仍然得到一個未解決的符號錯誤。解析外部符號,編譯器添加字母「A」到函數名
error LNK2001: unresolved external symbol "public: bool __thiscall SharedJobQueue::AddJobA(class boost::shared_ptr<class domain::Job>)" ([email protected]@@[email protected]@[email protected]@@[email protected]@@Z)
爲什麼它說AddJobA與'A'底。該方法被聲明爲AddJob。
我查看了'dumpbin/symbols'的輸出,它只包含AddJob而不是AddJobA的符號。爲什麼編譯器在函數名的末尾添加'A'?
是否有一個名稱已被使用宏的win32頭「採取」的名單?所以我可以知道我不應該使用什麼名字。 – 2010-02-23 11:23:31
好問題。我不相信有,但是我再也沒有看過。檢查最簡單的方法是轉到msdn.microsoft.com並搜索要使用的函數的名稱,以查看它是否已處於「使用」狀態。 – 2010-02-23 11:25:41
我不會在這裏說「宏觀是一個問題」。它們在整個低級別的win32 API中以不變的方式使用。 – 2010-02-23 11:31:15