日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Go语言写界面】一、使用xcgui完成go语言第一个软件界面

發(fā)布時間:2024/3/26 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Go语言写界面】一、使用xcgui完成go语言第一个软件界面 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、先獲取xcgui庫

go get github.com/twgh/xcgui

二、到網(wǎng)盤下載xcgui.dll

百度云 , 藍(lán)奏云

網(wǎng)盤里有64位的和32位的dll,一般選擇64位的,go編譯的程序默認(rèn)也是64位的。

xcgui.dll需要和編譯出來的程序放在一起,但每寫一個程序都重復(fù)放的話就很麻煩了。

所以在開發(fā)時我建議把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() {// 炫彩_初始化, 參數(shù)填true是啟用D2D硬件加速, 效果更好. 但xp系統(tǒng)不支持d2d, 這時候你就得填false來關(guān)閉d2d了a := app.New(true)// 創(chuàng)建普通窗口, 寬300, 高200, 標(biāo)題是"xcgui window", xcc.Window_Style_Default是使用默認(rèn)窗口風(fēng)格w := window.New(0, 0, 300, 200, "xcgui window", 0, xcc.Window_Style_Default)// 顯示窗口w.Show(true)// 運行消息循環(huán), 程序會被阻塞在這里不退出, 當(dāng)炫彩窗口數(shù)量為0時退出a.Run()// 退出界面庫釋放資源a.Exit() }

五、編譯程序

go build -ldflags="-s -w -H windowsgui"

參數(shù)解釋:-H windowsgui會隱藏黑窗口,-s -w去除了符號表和調(diào)試信息,這樣可以減小軟件體積。

六、界面效果

直接編譯后大小為1.61M,使用upx64位壓縮后大小變?yōu)?86K

七、把dll編譯進(jìn)程序里,運行時寫出

先把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)// 炫彩_初始化, 參數(shù)填true是啟用D2D硬件加速, 效果更好. 但xp系統(tǒng)不支持d2d, 這時候你就得填false來關(guān)閉d2d了a := app.New(true)// 創(chuàng)建普通窗口, 寬300, 高200, 標(biāo)題是"xcgui window", xcc.Window_Style_Default是使用默認(rèn)窗口風(fēng)格w := window.New(0, 0, 300, 200, "xcgui window", 0, xcc.Window_Style_Default)// 顯示窗口w.Show(true)// 運行消息循環(huán), 程序會被阻塞在這里不退出, 當(dāng)炫彩窗口數(shù)量為0時退出a.Run()// 退出界面庫釋放資源a.Exit() }

八、如果不想讓用戶看到運行目錄有個dll文件,可以把dll釋放到系統(tǒng)臨時目錄里

這樣用戶就感覺不到dll的存在了,和一個二進(jìn)制文件也沒啥太大區(qū)別。

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)}// 炫彩_初始化, 參數(shù)填true是啟用D2D硬件加速, 效果更好. 但xp系統(tǒng)不支持d2d, 這時候你就得填false來關(guān)閉d2d了a := app.New(true)// 創(chuàng)建普通窗口, 寬300, 高200, 標(biāo)題是"xcgui window", xcc.Window_Style_Default是使用默認(rèn)窗口風(fēng)格w := window.New(0, 0, 300, 200, "xcgui window", 0, xcc.Window_Style_Default)// 顯示窗口w.Show(true)// 運行消息循環(huán), 程序會被阻塞在這里不退出, 當(dāng)炫彩窗口數(shù)量為0時退出a.Run()// 退出界面庫釋放資源a.Exit() }

九、后面將持續(xù)更新,從易到難,從簡單界面到華麗界面,請多多關(guān)注

總結(jié)

以上是生活随笔為你收集整理的【Go语言写界面】一、使用xcgui完成go语言第一个软件界面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。