gpt4 book ai didi

c++ - 戈朗 : call Windows DLL functions

转载 作者:IT王子 更新时间:2023-10-29 01:10:59 25 4
gpt4 key购买 nike

我正在编写一个调用 Windows DLL 的 Go 应用程序。该 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 中定义的符号。

关于如何在不通过系统调用路径的情况下获取符号链接(symbolic link)的任何建议?

最佳答案

如果您尝试链接到您需要/想要 LDFLAGS 中的“-lMyModule”的 dll? https://stackoverflow.com/a/15853231/32453

关于c++ - 戈朗 : call Windows DLL functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27849137/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com