请先安装gcc编译器,选择32位,下载地址:https://jmeubank.github.io/tdm-gcc/download/
;
由于易语言只支持32位dll,使用64位会出错,例如找不到此函数;
必须先设置两项配置:set GOARCH=386
,set CGO_ENABLED=1
,用cmd;
编译命令:go build -ldflags "-s -w" -buildmode=c-shared -o dlldemo.dll dlldemo.go
。
string
特殊外,其他int
、bool
,等基本类型原本怎样还是怎样;string
与返回值 string
都改成 *C.char
类型,其他基本类型不用改;C.CString
转成c字符串,C.GoString
转成go字符串 , C.free
释放内存;C.CString
此方法,就必须记得释放内存。C.CString
却不使用 C.free
,内存暂用只会越来越大,最后奔溃;unsafe.Pointer(&xx变量)
,这样等于没释放;defer
在即将出栈时释放,会造成易语言得不到返回值;FreeAll()
用于释放!@
,不然会出现栈错误;FreeAll()
释放内存!先锋小七 发表于 2021-1-24 10:02
同道中人也,楼主踩的坑我全踩过。。。不过楼主有一些没提到的也很重要,就是go源文件格式,包括 import "C ...
黑色№ 发表于 2021-2-4 18:20
有意思,但不知道golang跑Windows平台性能会不会掉,最近在用golang重写精易模块,有兴趣可以一起交流 ...
先锋小七 发表于 2021-1-24 10:02
同道中人也,楼主踩的坑我全踩过。。。不过楼主有一些没提到的也很重要,就是go源文件格式,包括 import "C ...
黑色№ 发表于 2021-2-4 18:20
有意思,但不知道golang跑Windows平台性能会不会掉,最近在用golang重写精易模块,有兴趣可以一起交流 ...
先锋小七 发表于 2021-1-24 10:02
同道中人也,楼主踩的坑我全踩过。。。不过楼主有一些没提到的也很重要,就是go源文件格式,包括 import "C ...
先锋小七 发表于 2021-1-24 10:02
同道中人也,楼主踩的坑我全踩过。。。不过楼主有一些没提到的也很重要,就是go源文件格式,包括 import "C ...
黑色№ 发表于 2021-2-4 18:20
有意思,但不知道golang跑Windows平台性能会不会掉,最近在用golang重写精易模块,有兴趣可以一起交流 ...
为了生活 发表于 2024-2-19 23:15
老哥 现在都是go语言开发了么
黑色№ 发表于 2024-2-20 09:05
转GO四年了
为了生活 发表于 2024-2-20 14:05
厉害了,之前说要用go复写一个精益模块命令的 实现了么
先锋小七 发表于 2021-1-24 10:02
同道中人也,楼主踩的坑我全踩过。。。不过楼主有一些没提到的也很重要,就是go源文件格式,包括 import "C ...
欢迎光临 精易论坛 (https://125.confly.eu.org/) | Powered by Discuz! X3.4 |