go语言生成DLL,供其他语言调用
在Go语言中生成可供其他语言调用的DLL文件,你需要使用cgo,并定义//export
注释的函数。以下是一个简单的例子:
首先,创建一个Go文件,例如example.go
:
package main
import "C"
//export Add
func Add(a int, b int) int {
return a + b
}
func main() {
// 空的main函数,这是Go程序的约定,不会执行
}
然后,在命令行中运行以下命令来编译这个文件:
go build -buildmode=c-shared -o example.dll .
这条命令会生成一个名为example.dll
的DLL文件,其中包含Add
函数。
现在你可以在其他语言中调用这个DLL文件中的Add
函数了。例如,在C#中,你可以使用DllImport
来加载并使用这个函数:
using System;
using System.Runtime.InteropServices;
class Program
{
[DllImport("example.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int Add(int a, int b);
static void Main(string[] args)
{
int result = Add(3, 4);
Console.WriteLine("Result: " + result);
}
}
确保DLL文件与你的C#程序在同一个目录下,或者在环境变量的PATH中指定DLL文件的路径。
评论已关闭