看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《easterday (....)》之銘言: : 自問自答: : 現在我的進度到這裡:https://tinyurl.com/2atpsmkh : 編起來就是有錯誤訊息 : C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: : textbox.o:textbox.cpp:(.rdata$.refptr._ZTV10MyTextCtrl[.refptr._ZTV10MyTextCtrl]+0x0): : undefined reference to `vtable for MyTextCtrl' : C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: : C:/msys64/mingw64/lib/libmingw32.a(lib64_libmingw32_a-crtexewin.o): in : function `main': : C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexewin.c:67:(.text.startup+0xbd): : undefined reference to `WinMain' : collect2.exe: error: ld returned 1 exit status : make: *** [Makefile:11: CH3.exe] Error 1 : 有人肯幫忙看看嗎? 首先我想問的是:既然你是在 Windows 上編譯,有一定要用 MinGW 嗎? 以 wxWidgets 來說,我覺得用 Visual Studio 問題會比較少。 至少你遇到的那兩個問題,我覺得都跟 linker or 函式庫有關。 如果你想用 Visual Studio setup 開發環境的話,我之前有寫過一份簡單的文件, 可以參考一下:https://hackmd.io/@closer/BJrq8PcNP 回到你的程式碼。 我在 Visual Studio 的環境中編譯你的 .cpp,其實只有一個問題。 就是你在 class MyTextCtrl 的宣告中,加入了 DECLARE_DYNAMIC_CLASS 這個巨集。 你只要拿掉那一行,就能編譯了。 此時我要再問一個問題:你知道這個 dynamic class 是做什麼用的嗎? 你有需要用嗎? 依據這篇文章:https://docs.wxwidgets.org/trunk/overview_rtti.html DECLARE/IMPLEMENT_DYNAMIC_CLASS 是用來產生 wxWidgets 自己實作的 RTTI 用的。 我個人(至少在使用 wxWidgets 時)從來沒使用過 wxWidgets 自己的 RTTI。 所以如果你沒有特別需求,DECLARE_DYNAMIC_CLASS 那一行是不需要的。 若是你真的需要 wxWidgets 的 RTTI,那麼,依照上面那篇文章,你需要: 1. 在 class 宣告中加入 DECLARE_DYNAMIC_CLASS(也就是你的 Line 8) 2. 在 class 的定義中(Line 64 前後吧)加入 IMPLEMENT_DYNAMIC_CLASS 巨集 3. 為 MyTextCtrl 宣告並實作 default constructor(也就是不帶參數的 ctor) 你只做了 1,少了 2 & 3。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.140.199.28 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1724838054.A.BD2.html ※ 編輯: closer76 (223.140.199.28 臺灣), 08/28/2024 17:55:37
easterday: 自問自答:如果還是編不過, 08/31 23:30
easterday: 要把textbox.cpp的第一行拿掉 08/31 23:31
easterday: //#pragma interface "textbox.cpp" 要拿掉 08/31 23:31
easterday: 感謝幫忙! 08/31 23:32
wulouise: #pragma interface不是寫在header? 09/01 14:07
lycantrope: 正常是寫在header啦w 09/01 16:32
closer76: 喔,那行 VC++ 自動忽略....只有一個 warning... XD 09/02 16:49