Golang封裝成dll可以嗎?要怎么做?可能有的人對Golang并不陌生,或者從來沒有了解過Golang。但是不用擔(dān)心,今天小編會以最簡單的描述來講解Golang的原理,告訴大家Golang如何封裝成dll。
10年積累的成都網(wǎng)站設(shè)計、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有常州免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
Golang封裝成dll可以嗎?要怎么做
Golang可以將程序編譯成DLL文件,具體做法如下:
1、golang 編譯 dll 過程中需要用到 gcc,所以先安裝 MinGW。
windows 64 位系統(tǒng)應(yīng)下載 MinGW 的 64 位版本: https://sourceforge.net/projects/mingw-w64/
2、下載后運(yùn)行 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 文件中的函數(shù)定義,撰寫 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 放在同一目錄下,運(yùn)行。
>importgo.exe Hello World! From DLL: Bye! 55
以上就是Golang封裝成dll可以嗎?要怎么做的詳細(xì)內(nèi)容了,看完之后是否有所收獲呢?如果如果想了解更多,歡迎來創(chuàng)新互聯(lián)行業(yè)資訊!