【Go语言写界面】一、使用xcgui完成go语言第一个软件界面
生活随笔
收集整理的這篇文章主要介紹了
【Go语言写界面】一、使用xcgui完成go语言第一个软件界面
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、先獲取xcgui庫
go get github.com/twgh/xcgui二、到網盤下載xcgui.dll
百度云 , 藍奏云
網盤里有64位的和32位的dll,一般選擇64位的,go編譯的程序默認也是64位的。
xcgui.dll需要和編譯出來的程序放在一起,但每寫一個程序都重復放的話就很麻煩了。
所以在開發時我建議把xcgui.dll放到C:\Windows\System32目錄下,這樣就不需要每次都把dll和程序放在一起了。
三、開始寫代碼
剛開始你只需要知道3個包,程序包:app、窗口包:window和常量包:xcc。
四、最簡單的程序代碼
package mainimport ("github.com/twgh/xcgui/app""github.com/twgh/xcgui/window""github.com/twgh/xcgui/xcc" )func main() {// 炫彩_初始化, 參數填true是啟用D2D硬件加速, 效果更好. 但xp系統不支持d2d, 這時候你就得填false來關閉d2d了a := app.New(true)// 創建普通窗口, 寬300, 高200, 標題是"xcgui window", xcc.Window_Style_Default是使用默認窗口風格w := window.New(0, 0, 300, 200, "xcgui window", 0, xcc.Window_Style_Default)// 顯示窗口w.Show(true)// 運行消息循環, 程序會被阻塞在這里不退出, 當炫彩窗口數量為0時退出a.Run()// 退出界面庫釋放資源a.Exit() }五、編譯程序
go build -ldflags="-s -w -H windowsgui"參數解釋:-H windowsgui會隱藏黑窗口,-s -w去除了符號表和調試信息,這樣可以減小軟件體積。
六、界面效果
直接編譯后大小為1.61M,使用upx64位壓縮后大小變為386K
七、把dll編譯進程序里,運行時寫出
先把xcgui.dll放到項目目錄里,然后看下面代碼:
package mainimport (_ "embed""os""github.com/twgh/xcgui/app""github.com/twgh/xcgui/window""github.com/twgh/xcgui/xcc" )//go:embed xcgui.dll var dll []bytefunc main() {os.WriteFile("xcgui.dll", dll, 0666)// 炫彩_初始化, 參數填true是啟用D2D硬件加速, 效果更好. 但xp系統不支持d2d, 這時候你就得填false來關閉d2d了a := app.New(true)// 創建普通窗口, 寬300, 高200, 標題是"xcgui window", xcc.Window_Style_Default是使用默認窗口風格w := window.New(0, 0, 300, 200, "xcgui window", 0, xcc.Window_Style_Default)// 顯示窗口w.Show(true)// 運行消息循環, 程序會被阻塞在這里不退出, 當炫彩窗口數量為0時退出a.Run()// 退出界面庫釋放資源a.Exit() }八、如果不想讓用戶看到運行目錄有個dll文件,可以把dll釋放到系統臨時目錄里
這樣用戶就感覺不到dll的存在了,和一個二進制文件也沒啥太大區別。
package mainimport (_ "embed""github.com/twgh/xcgui/app""github.com/twgh/xcgui/window""github.com/twgh/xcgui/xc""github.com/twgh/xcgui/xcc" )//go:embed XCGUI.dll var dll []bytefunc main() {// 把 xcgui.dll 寫出到windows臨時目錄err := xc.WriteDll(dll)if err != nil {panic(err)}// 炫彩_初始化, 參數填true是啟用D2D硬件加速, 效果更好. 但xp系統不支持d2d, 這時候你就得填false來關閉d2d了a := app.New(true)// 創建普通窗口, 寬300, 高200, 標題是"xcgui window", xcc.Window_Style_Default是使用默認窗口風格w := window.New(0, 0, 300, 200, "xcgui window", 0, xcc.Window_Style_Default)// 顯示窗口w.Show(true)// 運行消息循環, 程序會被阻塞在這里不退出, 當炫彩窗口數量為0時退出a.Run()// 退出界面庫釋放資源a.Exit() }九、后面將持續更新,從易到難,從簡單界面到華麗界面,請多多關注
總結
以上是生活随笔為你收集整理的【Go语言写界面】一、使用xcgui完成go语言第一个软件界面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最常见DDOS攻击工具有哪些?怎么防御D
- 下一篇: 03)java spi应用 java