我是新手,按照百度文庫 “VS2010之MFC串口通信的撰寫教程”寫的程式,最后編譯出現error LNK2001: 無法決議的外部符號 "public: virtual struct CRuntimeClass * __thiscall CMscomm1::GetRuntimeClass(void)const " (?GetRuntimeClass@CMscomm1@@UBEPAUCRuntimeClass@@XZ);自己找原因倒騰一天了搞不好,求大神解答。
uj5u.com熱心網友回復:
無法決議外部符號一般出現這個問題有兩種情況1. 鏈接庫沒有加載
2. 庫不對,如庫的呼叫規范(__thiscall是一種規范之一)不同,或者配置不同(有些庫是win32,有些是x64的)
uj5u.com熱心網友回復:
可能是這兩種情況1,在.h檔案中寫了DECLARE_DYNAMIC,而在.cpp檔案中沒有寫IMPLEMENT_DYNAMIC
2,在.h檔案中寫了DECLARE_DYNCREATE ,但在.cpp檔案中沒有寫上IMPLEMENT_DYNCREATE
uj5u.com熱心網友回復:
你是不是有另外的專案添加過CMScomm控制元件,如果有的話,你試一下手動把“mscomm1.cpp”檔案添加到你的專案中。uj5u.com熱心網友回復:

看看這兩個檔案是不是有紅色的標記,那就是沒加載上,選擇屬性l欄那里選擇為ture,加載上就OK了
uj5u.com熱心網友回復:
根據https://www.cnblogs.com/xiongjiaji/archive/2010/12/31/2476565.html提供的指導,如下:【
上網一查,發現如下設定即可:
C/C++ | Language | Treat wchar_t as built-in type: yes?no?
默認為是,設定為否即可。
】
可以解決。
uj5u.com熱心網友回復:
DECLARE_DYNAMIC ( ) IMPLEMENT_DYNAMIC( ) 分別在.h 和.cpp中宣告 ,若只宣告 DECLARE_DYNAMIC() 則會出現上面的錯誤情況。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/42655.html
標籤:基礎類
下一篇:C語言入門
