最近需要用到golang编译dll给C#调用,记录一下,希望可以给遇到的朋友一些帮助.
开发环境:
习惯在macos开发golang应用,先写好了dll,可以参考:
测试时发现了一个问题,如下:
关键是 lpOnRecvCardEvent 这个函数的第二个参数是个 C++ 指针. 楼主在 C# 中声明这个导出函数时,使用了并不对应的 CardEvent[] C# 数组类型. 正确的做法是: 在 C# 声明 lpOnRecvCardEvent 时,第二个参数应该是 IntPtr ,不是数组. 由于楼...
在golang中加载dll并调用函数流程如下:
①加载dll动态库到内存 syscall.LoadLibrary
一个系统消息框函数的调用示例:
GO语言的包估计是不能直接调用的,这个我没试过.不过编译成DLL的库绝对是可以调用的,或者直接直接用系统命令调用编译完成的可执行程序.
①最简单的方法:
public static String reverse1(String str)
{ return new StringBuffer(str).reverse().toString();
}
{ char[] array = s.toCharArray();
String reverse = ""; //注意这是空串,不是null
for (int i = array.length - 1; i = 0; i--)
reverse += array[i];
return reverse;
{ int length = s.length();
for (int i = 0; i length; i++)
reverse = s.charAt(i) + reverse;//在字符串前面连接, 而非常见的后面
你在编译器里面build一下,然后去\bin\debug目录下找.exeexe就是可执行文件了.运行的时候可能需要用到debug目录下的其他文件(如配置文件、dll等),所以需要把debug下的所有文件都放到一起.
以上就是土嘎嘎小编为大家整理的go语言打包dll相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!