go 调用其他文件函数-ag凯发k8国际
c# 和 golang 都不是世界上最好的语言。在不同的业务场景下,c# 和 golang 各有所长。如果要编写一个网络程序,显然 golang 更擅长,而如果要编写一个桌面 gui 程序,那么 c# 简直不要太爽。我们完全可以将两者用在同一个项目中,各取所长。golang 支持将源代码编译为动态链接库(dll),这让我们在 c# 调用 golang 成为可能。
本篇代码可以在:https://gitee.com/coderbusy/golang-with-csharp 找到。
如何在 c# 中调用 golang 函数?
go 语言提供了 cgo 机制,使得能够在 go 代码中直接调用 c 的库函数,此外还支持在 c 语言中调用 go 函数,非常强大。golang 支持将 go 函数导出给 c 语言使用,那么也同样可以给 c# 使用。
cgo 环境搭建
要使用 cgo 特性,需要安装 c/c 构建工具链,在 macos 和 linux 下是要安装好 gcc,在 windows 下是需要安装 mingw 工具。如果你的电脑上已经安装好 gcc ,则可以跳过本小节。
关于 mingw 的安装网上已经有很多教程,本篇将介绍一种更简单的方法来安装 mingw :通过安装 qt 来部署 mingw 到本机(该方法来自:ha666)。qt 的安装包中自带了 mingw 环境,我们只要安装 qt 开发包,那么附带的 mingw 环境就安装好了。
qt 的下载地址可以在:http://download.qt.io/archive/qt/ 中找到,目前(2020年1月28日)最新的版本是 5.14.1 ,windows 版的下载地址是:qt-opensource-windows-x86-5.14.1.exe 。
如果你没有且不想创建 qt 的网络账户,那么在运行 qt 的安装文件之前,可以先断开网络,这样就不会出现 qt 账户的注册和登录界面:
断网状态下,不会出现账号注册和登录界面,直接“next”即可。安装过程中无需更改默认的安装目录,在“选择组件”页面时,勾选 mingw 组件:
在“选择组件”页面中,勾选 mingw 组件。在安装完成之后,需要设置好环境变量 go 编译器才能找到 gcc 的安装位置。如果你使用的软件版本和我相同并且没有更改默认安装位置,那么这个要添加到 path 变量中的目录地址应该是:c:\qt\qt5.14.0\tools\mingw730_32\bin\
如果安装正确并配置好了环境变量,那么在命令行中键入 gcc ,将会看到以下输出:
hello golang
编写 golang 代码,文件名为 main.go 。注意:虽然我们最终要生成动态链接库,但是 main 函数仍是不可或缺的。
main.go接下来对 go 源文件进行编译,新建一个 make.bat 文件,填入一下指令并运行:
make.bat命令成功后,我们会得到两个文件:hellogolang.interop.h 和 hellogolang.interop.dll 。
使用 visual studio 新建 hellogolang 控制台应用程序,并将生成的目标平台设置为 x86 。将 hellogolang.interop.dll 添加到项目中,并设置为“始终复制”:
hellogolang.csproj在 program.cs 文件中,使用 dllimport 导入外部方法并调用:
program.cs运行程序,那么将会在控制台中看到以下输出:
hello golang 输出其中,第一行的 hello world! 来自 c# 程序,第二行 hello c#,i'm golang! 则来自 go 程序。
总结
以上是ag凯发k8国际为你收集整理的go 调用其他文件函数_【c# 调用 go 语言】0x1 hello golang的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 18款bj212,柴油2.8t版本,离合
- 下一篇: 奔驰v260正驾座椅轨道护板怎么拆卸?