Golang中如何编译成dll,方法步骤是什么
导读:这篇文章给大家介绍了“Golang中如何编译成dll,方法步骤是什么”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“Golang中如何编译成dll,方法步骤是什么”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟...
这篇文章给大家介绍了“Golang中如何编译成dll,方法步骤是什么”的相关知识,讲解详细,步骤过程清晰,对大家进一步学习和理解“Golang中如何编译成dll,方法步骤是什么”有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。
Golang能封装成dll吗
Golang可以将程序编译成DLL文件,具体做法如下:
1、golang 编译 dll 过程中需要用到 gcc,所以先安装 MinGW。
windows 64 位系统应下载 MinGW 的 64 位版本: https://sourceforge.net/projects/mingw-w64/
2、下载后运行 mingw-w64-install.exe,完成 MingGW 的安装。
3、首先撰写 golang 程序 exportgo.go:
package main
import "C"
import "fmt"
//export PrintBye
func PrintBye() {
fmt.Println("From DLL: Bye!")
}
//export Sum
func Sum(a int, b int) int {
return a + b;
}
func main() {
// Need a main function to make CGO compile package as C shared library
}
4、编译成 DLL 文件:
go build -buildmode=c-shared -o exportgo.dll exportgo.go
编译后得到 exportgo.dll 和 exportgo.h 两个文件。
5、参考 exportgo.h 文件中的函数定义,撰写 C# 文件 importgo.cs:
using System;
using System.Runtime.InteropServices;
namespace HelloWorld
{
class Hello
{
[DllImport("exportgo.dll", EntryPoint="PrintBye")]
static extern void PrintBye();
[DllImport("exportgo.dll", EntryPoint="Sum")]
static extern int Sum(int a, int b);
static void Main()
{
Console.WriteLine("Hello World!");
PrintBye();
Console.WriteLine(Sum(33, 22));
}
编译 CS 文件得到 exe
csc importgo.cs
将 exe 和 dll 放在同一目录下,运行。
>
importgo.exe
Hello World!
From DLL: Bye!
55关于“Golang中如何编译成dll,方法步骤是什么”的内容就介绍到这,感谢各位的阅读,相信大家对Golang中如何编译成dll,方法步骤是什么已经有了进一步的了解。大家如果还想学习更多知识,欢迎关注网络,小编将为大家输出更多高质量的实用文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Golang中如何编译成dll,方法步骤是什么
本文地址: https://pptw.com/jishu/653822.html
