import "C"
并且要单独一行,在其上方的注释中必须写上 #include <stdlib.h>
(这里乱码请下载附件查看);C
的标准动态库头文件,若不导入将有几率编译失败。string
特殊外,其他int
、bool
,等基本类型原本怎样还是怎样;string
与返回值 string
都改成 *C.char
类型,其他基本类型不用改;C.CString
转成c字符串,C.GoString
转成go字符串 , C.free
释放内存;C.CString
此方法,就必须记得释放内存。C.CString
却不使用 C.free
,内存暂用只会越来越大,最后奔溃;unsafe.Pointer(&xx变量)
,这样等于没释放;vc6
的原因,使用 defer
在即将出栈时释放,会造成易语言得不到返回值;Free()
用于释放!tdm-gcc
编译器,可选择64位,依然可以编译出32位,下载地址:https://jmeubank.github.io/tdm-gcc/download/
;gcc
兼容性问题建议下载 msys2
后再安装 gcc
,此条为建议并不一定需要;cmd
执行两项设置:set GOARCH=386
,set CGO_ENABLED=1
,每次打开新的 cmd
都要重新设置;go build -ldflags "-s -w" -buildmode=c-shared -o dlldemo.dll dlldemo.go
。@
,不然会出现栈错误;Free()
释放内存!1.2 MB, 下载次数: 461, 下载积分: 精币 -2 枚
先锋小七 发表于 2021-2-1 13:12
直接返回指针地址,这样他不香?
先锋小七 发表于 2021-2-1 13:12
直接返回指针地址,这样他不香?
ltswwh 发表于 2022-4-11 12:06
楼主您好,请问怎么,易语言传递数组到golang的dll,然后golang的dll怎么返回数组给易语言。麻烦给个简单的 ...
1.png (10.33 KB, 下载次数: 39)
欢迎光临 精易论坛 (https://125.confly.eu.org/) | Powered by Discuz! X3.4 |