.版本

成都創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)華容,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
2
.子程序
_按鈕2_被單擊
鳴叫
()
.子程序
_按鈕3_被單擊
播放音樂
(#聲音1,
)
.子程序
_按鈕1_被單擊
播放次數(shù)
=
1
'
播放MP3
(,
你想播放的音樂的路徑)
已經(jīng)發(fā)到你的郵箱了!
你好,使用golang寫動(dòng)態(tài)庫(kù),再使用易語(yǔ)言寫界面,肯定有不少人有這種想法吧;但中間有些坑,這里留下一些解決方法。
一、如何編譯?
請(qǐng)先安裝gcc編譯器,選擇32位
由于易語(yǔ)言只支持32位dll,使用64位會(huì)出錯(cuò),例如找不到此函數(shù);
必須先設(shè)置兩項(xiàng)配置:set GOARCH=386,set CGO_ENABLED=1,用cmd;
編譯命令:go build -ldflags "-s -w" -buildmode=c-shared -o dlldemo.dll dlldemo.go 。
二、形參與返回值
在go中,除了 string 特殊外,其他int、bool,等基本類型原本怎樣還是怎樣;
傳 string 與返回值 string 都改成 *C.char 類型,其他基本類型不用改;
有三個(gè)方法比較重要,C.CString 轉(zhuǎn)成c字符串,C.GoString 轉(zhuǎn)成go字符串 , C.free 釋放內(nèi)存;
只要用到 C.CString 此方法,就必須記得釋放內(nèi)存。
三、內(nèi)存泄漏
如果使用了 C.CString 卻不使用 C.free ,內(nèi)存暫用只會(huì)越來越大,最后奔潰;
釋放內(nèi)存時(shí),請(qǐng)不要重復(fù)取地址,例如 unsafe.Pointer(xx變量) ,這樣等于沒釋放;
也可能是vc6的原因,使用 defer 在即將出棧時(shí)釋放,會(huì)造成易語(yǔ)言得不到返回值;
解決方法,聲明全局變量,將結(jié)果賦值給全局變量,專門定義一個(gè)釋放函數(shù)例如FreeAll() 用于釋放!
四、如何調(diào)用
在填寫dll命令時(shí),請(qǐng)?jiān)谔顚懀趲?kù)中對(duì)應(yīng)命令名時(shí),前面加個(gè) @ ,不然會(huì)出現(xiàn)棧錯(cuò)誤;
每次調(diào)用返回值是文本型dll命令時(shí),請(qǐng)都使用前面準(zhǔn)備的 FreeAll() 釋放內(nèi)存!
通過易語(yǔ)言的便捷,為自己的golang小項(xiàng)目加點(diǎn)gui吧,這里留下源碼,給有需要的人。
希望能幫到你。
你要的源碼:
yun哈pan.cn/lk/Q2WkyCNkKZrUc
上面的地址先把“哈”去掉,復(fù)制到瀏覽器然后可以下載
當(dāng)前名稱:易語(yǔ)言怎么提示go 易語(yǔ)言置錯(cuò)誤提示管理
轉(zhuǎn)載來于:http://chinadenli.net/article30/hjidpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、品牌網(wǎng)站建設(shè)、電子商務(wù)、手機(jī)網(wǎng)站建設(shè)、App設(shè)計(jì)、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)