Golang:调用Windows DLL函数

我正在写一个Go应用程序,调用到一个Windows DLL。 该DLL是用MSVC编写的,并使用__declspec(dllexport)具有外部“C”导出。

我的Go应用程序的顶部如下:

//#cgo CFLAGS: -IC:/Repos/Module/include //#cgo LDFLAGS: -L. C:/Repos/Module/go/bin/MyModule.dll //#include <MyModule.h> import "C" 

我从模块调用函数如下所示:

 nRet := C.moduleImpl_len() 

问题是,当我尝试运行这个应用程序,我得到以下错误:

 C:\Users\MINDO~1\AppData\Local\Temp\go-build836751819\mod\modimpl\_obj\modimpl.cgo2.o: In function `_cgo_e2aaf076ab69_Cfunc_moduleImpl_len': C:/Repos/Module/go/src/mod/modimpl/modimpl.go:90: undefined reference to `moduleImpl_len' 

我用DUMPBIN查看了DLL导出的符号,并且显示了正确的“moduleImpl_len”作为导出的符号。 这也是MyModule.h中定义的符号。

任何build议,我怎样才能得到符号链接,而不必去系统调用路线?

Solutions Collecting From Web of "Golang:调用Windows DLL函数"