跳到主要内容

C# 快速集成

1. C# 快速集成

因为我们的库是使用 C++开发的,所以不能直接通过 interface.h 中的函数调用,而需要使用到 DllImport 特性声明 C 函数的原型,同时使用 extern 关键字定义该函数的实现。

下面是一个简单的示例:

using System;
using System.Runtime.InteropServices;

class Program
{
// 声明connect_robot函数的原型
[DllImport("libnrc_host.dll")]
public static extern int connect_robot(string ip, string port, string robotName);

// 声明get_current_position函数的原型
[DllImport("RobotLibrary.dll")]
public static extern int get_current_position(double[] pos, int coord, string robotName);

static void Main()
{
// 调用connect_robot函数
int result = connect_robot("192.168.1.13", "6001", "RobotA");

// 检查连接结果
if (result == 0)
{
Console.WriteLine("连接成功!");
}
else
{
Console.WriteLine("连接失败!");
}
// 创建一个数组来存储位置信息
double[] currentPosition = new double[7];

// 调用get_current_position函数
int result = get_current_position(currentPosition, 1, "RobotA");

// 检查获取位置的结果
if (result == 0)
{
Console.WriteLine("成功获取当前位置:");
Console.WriteLine($"X: {currentPosition[0]}, Y: {currentPosition[1]}, Z: {currentPosition[2]}");
}
else
{
Console.WriteLine("获取当前位置失败!");
}
}
}