zoukankan      html  css  js  c++  java
  • 【C# 调用 Go 语言】

    如何在 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 账户的注册和登录界面:

     在“选择组件”页面中,勾选 MinGW 组件。

    在安装完成之后,需要设置好环境变量 Go 编译器才能找到 GCC 的安装位置。如果你使用的软件版本和我相同并且没有更改默认安装位置,那么这个要添加到 PATH 变量中的目录地址应该是:C:QtQt5.14.0Toolsmingw730_32in

    如果安装正确并配置好了环境变量,那么在命令行中键入 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 程序。

  • 相关阅读:
    Python 散点图
    python matplotlib 图例设置 legend() 参数详解
    python matplotlib 设置背景色、轴脊、网格线
    python 可视化有随机噪声得到的一个“异或”数据集的二维分布
    Python 中的逻辑值
    python 计算等差数列和的两种循环方式
    Python 及其第三方库的版本查看
    R语言 中的 paste/paste0 函数
    R语言 文件及路径操作
    Python 热力图
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/15375174.html
Copyright © 2011-2022 走看看