环境搭建
环境要求
- 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。

2. 导入 SDK
将 SDK 文件夹拷贝到项目目录:

text
项目根目录/
├── Csharp_api/
│ ├── Csharp_api.dll # 托管接口(添加引用)
│ ├── nrc_host.dll # 原生库(自动复制)
│ └── ... # 其他依赖
├── csharp_demo.csproj
├── Form1.cs
└── ...2.1 添加托管引用
- 在解决方案资源管理器中右键项目 → 添加 → 项目引用
- 点击浏览,选中
Csharp_api/Csharp_api.dll - 点击确定
2.2 设置原生库自动复制
在 Csharp_api 文件夹中找到 nrc_host.dll:
- 右键
nrc_host.dll→ 属性 - 将 复制到输出目录 设置为 如果较新则复制
这样每次编译时,nrc_host.dll 会自动复制到 bin/Release/net8.0-Windows 目录,无需手动操作。

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

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. 编译运行
- 在工具栏中将配置切换为 Release,平台选择 x64
- 点击启动(或按 F5)
- 如果弹出对话框显示"连接成功",表示 SDK 配置正确
排错
| 错误 | 原因 | 解决 |
|---|---|---|
DllNotFoundException | nrc_host.dll 不在输出目录 | 检查 DLL 的"复制到输出目录"是否设为"如果较新则复制" |
BadImageFormatException | 架构不匹配(x86 vs x64) | 确认项目平台目标为 x64 |
TypeInitializationException | 托管接口与原生库版本不一致 | 确认 Csharp_api.dll 与 nrc_host.dll 来自同一 SDK 包 |
连接返回 <= 0 | IP/端口错误或控制器未就绪 | 检查 IP 和端口;用 ping 确认网络连通性 |