前言
本文得到了“樂師”的大力支援,
我們一起除錯程式到深夜,要是沒有他的幫忙,
我不知道要多久才能邁過這道坎,
另外“歸心”還有其他人也提供了幫助,
他們都來自於QQ群:“Nim開發集中營”469329878;
感興趣的朋友,可以加這個群一起討論
配置GUI開發環境
我在這篇部落格中,寫到了Nim開發環境的搭建
那篇部落格中說MingW是必選的,
這對於開發一個普通的Nim程式來說,沒有問題,但要開發GUI程式,還不夠
官方安裝包中所包含的的MingW安裝包有點問題
如果你用編譯命令:--app:gui,編譯你的程式,將會出錯
如果你不用這個編譯命令,那麼在你執行你的程式時,會先開啟一個命令列視窗,再開啟你的GUI程式。
具體為什麼會出錯,我還不是很清楚
(有可能那個MingW的安裝包是64位的,也有可能那個安裝包是閹割版的)
所以我們要自己安裝一個MingW,
Nim官方網站推薦到MingW官網去下載64位的安裝包,
MingW官網,要求你先裝一個安裝工具,再通過安裝工具下載你需要的MingW程式
(說實在的,那個安裝工具會搞的你很亂)
我是用“樂師”推薦給我的TDM安裝工具安裝MingW的
要注意的是,一定要安裝32位的MinGW
我現在也不是很清楚為什麼64位的MingGW為什麼不行
安裝好之後需要配置一下環境變數,把如下路徑配置到環境變數中:
C:\TDM-GCC-32\bin
(當然你如果裝到別的路徑下去了,那就另當別論)
然後你應該把Nim的bin路徑也配置到環境變數中:
C:\Nim\bin
這樣你就可以使用命令列來編譯你的程式了
(你用aporia官方提供的IDE來編譯你的程式,預設是沒有設定--app:gui開關的)
開發GUI程式
好下面我們寫個程式
# test a Windows GUI application import windows #proc MessageBox(hWnd: int, lpText, lpCaption: CString, uType: uint): int # {stdcall, import: "MessageBox", header: "<windows.h>"} discard MessageBox(0, "中文試試", "Nimrod GUI Application", 0)
在這個程式中我們使用了windows模組
你可以在這裡看到windows模組提供的API:http://nim-lang.org/docs/windows.html
編譯並執行程式
然後通過下面的命令列,來編譯這個程式:
nim c --app:gui -d:release wingui.nim
注:
nim是編譯器
c是compile的縮寫
-app:gui是編譯成gui程式的開關
-d:release是release編譯開關
wingui.nim是程式原始檔
這行命令必須在程式原始檔所在目錄下執行
命令執行完成後,在同目錄下會生成可執行檔案
執行這個程式,你會發現中文亂碼:
這是你只要把原始碼檔案改成ANSI或者gb2312編碼,重新儲存
然後再編譯一次,就好了