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知識請關注PHP中文網golang教學欄位。
以上是Golang能封裝成dll嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!