golang调用DLL中的函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang调用DLL中的函数相关的知识,希望对你有一定的参考价值。

参考技术A 在golang中加载dll并调用函数流程如下:
1.加载dll动态库到内存 syscall.LoadLibrary
2.获取函数地址 syscall.GetProcAddress
3.执行系统调用,传入参数 syscall.Syscall6

一个系统消息框函数的调用示例:

golang编译dll给C#调用

参考技术A 最近需要用到golang编译dll给C#调用,记录一下,希望可以给遇到的朋友一些帮助。
开发环境:
1.windows7,VS2019,VScode
2.macOS,VScode

习惯在macos开发golang应用,先写好了dll,可以参考:
https://blog.csdn.net/henreash/article/details/88768206
然后在windows7上面使用C#调用的时候出现不能识别dll,于是只好在windows7安装golang开发环境。
简单安装了VScode和mingw64.
https://sourceforge.net/projects/mingw-w64/

测试时发现了一个问题,如下:

最后找到的原因是我的windows7是64位的,mingw也是64位的,需要在VS2019里面将目标平台设置如下:

当然,也可以将目标平台设置为x64的即可,我这样设置,系统就自己去适配了。

网上的大部分是说设置目标平台为x86,这个要根据具体情况而来,不能一概而论。好了,希望能帮到您。

以上是关于golang调用DLL中的函数的主要内容,如果未能解决你的问题,请参考以下文章

C#中调用dll,函数参数带指针,如何改写?

从 C++ 调用 DLL 中的函数

vba如何调用dll中的过程函数或变量

从 Qt (c++) 调用 DLL 中的函数

怎么提取DLL文件中的导出函数呢?

Qt调用dll中的功能函数