2.golang/go#22192
- 编译DLL(需要GCC以及开启CGO) 请注意public包,包位置自行修改
go env -w GO111MODULE=auto
go build -buildmode=c-shared -o test.dll ./
- 测试程序
package main
import (
"TestDLL/LoadDll"
"TestDLL/Public"
"fmt"
)
func main() {
Tmp := make(map[int]string)
Tmp[0] = "123123"
Tmp[1] = "你好"
Open := load.OpenDLL("./test.dll")
fmt.Println(Open.LoadFunc("Demo")(Tmp))
fmt.Println(Open.ReadConfig())
fmt.Println(public.Tmp)
}
3 运行
go run test.go
map[0:123123 1:你好] <DLLLOAD>
你好
123123
{false 你好}
map[0:Demo]
0 //这里的0未修改,证明DLL是无法修改共享包中的全局变量 这点和Linux中的Plugin不一样