搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > Golang语言社区 > [转载]Golang 编译成 DLL 文件

[转载]Golang 编译成 DLL 文件

Golang语言社区 2018-03-01

首先撰写 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
}

编译成 DLL 文件:

go build -buildmode=c-shared -o exportgo.dll exportgo.go

编译后得到 exportgo.dll 和 exportgo.h 两个文件。

参考 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语言社区」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注Golang语言社区微信公众号

Golang语言社区微信公众号:Golangweb

Golang语言社区

手机扫描上方二维码即可关注Golang语言社区微信公众号

Golang语言社区最新文章

精品公众号随机推荐