Skip to content

环境搭建 ​

环境要求 ​

  • IDE: Visual Studio 2022(或更高版本)
  • .NET 版本: .NET 8.0(目标框架)
  • 架构: x64(SDK 仅支持 64 位)
  • 配置: Release / Debug(需与 SDK 版本匹配)
  • SDK 包: 从下载页获取 C# SDK

1. 创建项目 ​

打开 Visual Studio 2022,选择 Windows 窗体应用 (.NET 8.0),命名为 csharp_demo。

在 Visual Studio 创建新项目向导中选择 Windows 窗体应用项目模板

2. 导入 SDK ​

将 SDK 文件夹拷贝到项目目录:

Windows 资源管理器中显示项目目录下的 Csharp_api SDK 文件夹与项目文件

text
项目根目录/
├── Csharp_api/
│   └── ...                     # 其他依赖
└── nrc_host.dll            # 原生库(自动复制)

2.1 设置原生库自动复制 ​

找到 nrc_host.dll:

  1. 右键 nrc_host.dll → 属性
  2. 将 复制到输出目录 设置为 如果较新则复制

这样每次编译时,nrc_host.dll 会自动复制到 bin/Release/net8.0-Windows 目录,无需手动操作。

将 nrc_host.dll 动态库文件放到项目的输出目录下

2.2 显示所有文件(可选) ​

如果 SDK 文件夹在解决方案管理器中不可见:项目 → 显示所有文件 → 右键 Csharp_api → 包括在项目中。

在 Visual Studio 项目菜单中点击显示所有文件选项以显示拷贝进来的 SDK 文件夹

3. 编写最小连接代码 ​

在 Form1.cs 中添加连接测试代码:

csharp
using System;
using System.Windows.Forms;
using Csharp_api;   // SDK 命名空间

namespace csharp_demo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            string ip = "192.168.1.15";
            string port = "6001";
            int fd = NrcApi.connect_robot(ip, port);
            if (fd <= 0)
            {
                MessageBox.Show("连接失败,请检查 IP 和端口", "提示");
                return;
            }
            MessageBox.Show("连接成功!SocketFd: " + fd, "提示");
        }
    }
}

4. 编译运行 ​

  1. 在工具栏中将配置切换为 Release,平台选择 x64
  2. 点击启动(或按 F5)
  3. 如果弹出对话框显示"连接成功",表示 SDK 配置正确

在 Visual Studio 工具栏将解决方案配置切换为 Release 并通过本地 Windows 调试器运行程序

排错 ​

错误原因解决
DllNotFoundExceptionnrc_host.dll 不在输出目录检查 DLL 的"复制到输出目录"是否设为"如果较新则复制"
BadImageFormatException架构不匹配(x86 vs x64)确认项目平台目标为 x64
TypeInitializationException托管接口与原生库版本不一致确认 Csharp_api.dll 与 nrc_host.dll 来自同一 SDK 包
连接返回 <= 0IP/端口错误或控制器未就绪检查 IP 和端口;用 ping 确认网络连通性