不久之前為了在 Dev C++ 加入一個 dialog box base 的 Windows 程式範本 (Template),參照原來就存在於 Dev_cpp\template 目錄下的範本,自行新增範本檔案 "winapp_dialog.template"。
[Template] ver=1 Name=Dialog Box Application IconIndex=0 Description=A Dialog Box Application with Resource File Catagory=Windows [Unit0] CName=main.c CppName=main.cpp C=winapp_c.txt Cpp=winapp_c3.txt [Unit1] CName=resource.h CppName=resource.h C=WinApp_resource_1.txt Cpp=WinApp_resource_1.txt [Unit2] CName=maindialog.rc CppName=maindialog.rc C=WinApp_maindialog.txt Cpp=WinApp_maindialog.txt [Project] UnitCount=3 Type=0 Name=Windows App |
- 範本內容設定載入三個檔案,分別是主程式 main.cpp,資源引入檔 resource.h、以及 dialog box 資源描述檔 maindialog.rc
- 三個載入的檔案的定義分別描述在 [Unit0]、[Unit1]、[Unit2]
- 在 [Template] 中說明了此範本的應用是一個 dialog box base 的 Windows 程式
- 雖然範本定義了 C 及 C++ 的載入的檔案,但實際上目前也只有 C++ 是可以使用的
不過在重新進行此專案編輯時卻發現程式確實有被執行,但 dialog box 卻沒有出現。花時間檢視整個專案設定才終於瞭解到問題所在,是因為專案檔案 xxxx.dev 中有一項應該要有設定的,它卻是空白的,導致再一次重新 compile 時沒有抓取到 dialog box resource,所以雖然程式有被執行,而 dialog box 沒有出現的窘態。
xxxx.dev 中有一項是關於 resource 檔案的定義,必須在 PrivateResource= 後加入專案設定的 resource 檔案 (xxxx_private.rc)。在這裡的專案名稱為 mydialog,因此 resource 檔案全名就是 mydialog_private.rc。
這個系統自動產生的 xxxx_private.rc 內容不過就是指定引入我自訂的 resource 而已。只要手動完成 PrivateResource 定義,就不會出現 dialog box 莫名其妙神隱的狀況。
另外還有一個一勞永逸的方法,是在看 wxWidgets 範本設定時看到的;當中把 PrivateResource 設定為 newFrameproject_private.rc,就可以在每次重新 compile 都可以產出正確的執行檔。
沒有留言:
張貼留言