一,环境搭建
开发环境必须为gcc,windows需要安装mingw
二,示例代码
//必须是main包,并且导入 “C”
package main
import "C"
//改注释必须存在,格式为export+空格+函数名
//export Sum
func Sum(a,b int) int {
return a+b
}
//export Show
func Show(str *C.char) *C.char {
return C.CString("1233")
}
//必须存才main函数
func main() {
}
三,编译以及使用过程
1,生成动态库
go build -buildmode=c-shared -o lib.dll
2,使用vs2019调用
打开vs2019的Developer Command Prompt for vs2019命令行,并进入1,中生成的Dll文件所在目录,编写.def文件,该文家文件名必须和动态库同名
lib.def文件如下
LIBRARY
EXPORTS
Sum
Show
使用一下命令来生成.lib文件
生成目标64位的命令格式:
lib /def:lib.def /machine:x64 /out:lib.lib
生成目标32位的命令格式:
lib /def:lib.def /machine:x86 /out:lib.lib
之后就可以像正常的动态库使用了。测试代码如下