C++ Golang:调用Windows DLL函数

C++ Golang:调用Windows DLL函数,c++,windows,dll,go,C++,Windows,Dll,Go,我正在编写一个调用Windows DLL的Go应用程序。DLL是用MSVC编写的,并使用uu 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" 问题是,当我尝试运行此应用程序时,出

我正在编写一个调用Windows DLL的Go应用程序。DLL是用MSVC编写的,并使用uu 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"
问题是,当我尝试运行此应用程序时,出现以下错误:

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中定义的符号


关于如何在不必通过系统调用路由的情况下链接符号,有什么建议吗?

如果您试图链接到LDFLAGS中需要/想要“-lMyModule”的dll

这是我在提出问题时的一个错误。我的代码是正确的(一个冒号)。现在在问题文本中更正。这是正确的答案。你为什么不把它写在一个答案里,我会给你荣誉。谢谢!
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'