C#调用go语言生成的dll

C#调用go语言生成的dll

Cgo

https://sourceforge.net/projects/mingw-w64/files/

在这里插入图片描述

离线安装

在这里插入图片描述
解压后,配置环境变量
在这里插入图片描述

gcc -v

在这里插入图片描述

go build --buildmode=c-shared -o Test.dll
package main

import "C"
import "fmt"

func main() {
	fmt.Println(Test())
}

var _count = 99

// Test :
//
//export Test
func Test() int {
	_count++
	return _count
}


在这里插入图片描述

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp11
{

    public partial class Form1 : Form
    {

        [DllImport("Test.dll", EntryPoint = "Test")]
        extern static int Test();
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            int r = Test();
            MessageBox.Show(r.ToString());
        }
    }
}

在这里插入图片描述

参考文档1

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用C#调用C#生成DLL的步骤: 1.编写C#类库项目并生成DLL文件。 2.在调用DLLC#项目中添加对DLL的引用。 3.在代码中使用DLL中的类和方法。 下面是一个简单的示例: 假设我们有一个名为“CSharpClassLib”的C#类库项目,其中包含一个名为“TestClass”的类,该类具有一个名为“Hello”的公共方法。 1.编写C#类库项目并生成DLL文件。 在Visual Studio中创建一个新的C#类库项目“CSharpClassLib”,并添加以下代码: ```csharp using System; namespace CSharpClassLib { public class TestClass { public void Hello() { Console.WriteLine("Hello from CSharpClassLib!"); } } } ``` 生成该项目,将生成一个名为“CSharpClassLib.dll”的DLL文件。 2.在调用DLLC#项目中添加对DLL的引用。 在Visual Studio中创建一个新的C#控制台应用程序项目“MyDllDemo”,并将“CSharpClassLib.dll”文件复制到该项目的“bin\Debug”文件夹中。 右键单击“引用”文件夹,选择“添加引用”,然后选择“浏览”选项卡,浏览到“CSharpClassLib.dll”文件并添加它。 3.在代码中使用DLL中的类和方法。 在“Program.cs”文件中添加以下代码: ```csharp using System; using CSharpClassLib; namespace MyDllDemo { class Program { static void Main(string[] args) { TestClass test = new TestClass(); test.Hello(); Console.ReadKey(); } } } ``` 运行该项目,将输出“Hello from CSharpClassLib!”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值