二、MSVC + Visual Studio(Windows)
环境要求: Visual Studio 2019+,MSVC 编译工具链,x64 架构。
重要: SDK 与编译器的 ABI 必须匹配。MSVC 编译的库与 MinGW 编译的库不能混用。下载 SDK 时请选择 MSVC 版本。
2.1 创建项目
选择 C++ 控制台应用 创建,命名为 cpp_demo。

2.2 导入 SDK
将 SDK 文件拷贝到项目目录:
项目根目录/
├── libs/
│ ├── include/
│ │ ├── c_interface/
│ │ ├── cpp_interface/
│ │ └── parameter/
│ ├── nrc_host.lib # MSVC 导入库
│ └── nrc_host.dll # 运行时动态库
├── cpp_demo.cpp
└── cpp_demo.vcxproj2.3 配置 Visual Studio
左键项目 → 属性 (Properties),按以下步骤配置:
(1) 添加头文件路径
Configuration Properties → C/C++ → 常规 → 附加包含目录
$(ProjectDir)libs\include(2) 添加库路径
Configuration Properties → 链接器 → 常规 → 附加库目录
$(ProjectDir)libs(3) 链接库文件
Configuration Properties → 链接器 → 输入 → 附加依赖项
nrc_host.lib(4) 生成后自动复制 DLL
Configuration Properties → 生成事件 → 生成后事件 → 命令行
copy "$(ProjectDir)libs\nrc_host.dll" "$(OutDir)"2.4 编写最小连接代码
(1) 修改 nrc_api.h 头文件包含路径
由于 SDK 默认的 nrc_api.h 中引用的头文件路径是相对于 cpp_interface/ 目录的,而 Visual Studio 项目的附加包含目录配置为 libs\include,因此需要修改 libs\include\cpp_interface\nrc_api.h 文件的内容,将其中引用的头文件路径改为相对于 cpp_interface/ 目录的形式:
#ifndef INCLUDE_CPP_INTERFACE_NRC_API_H_
#define INCLUDE_CPP_INTERFACE_NRC_API_H_
#include "nrc_craft_conveyor_belt_track.h"
#include "nrc_craft_vision.h"
#include "nrc_craft_weld.h"
#include "nrc_interface.h"
#include "nrc_io.h"
#include "nrc_job_operate.h"
#include "nrc_modbus.h"
#include "nrc_queue_operate.h"
#include "nrc_track.h"
#include "nrc_dual_arm.h"
#endif /* INCLUDE_API_NRC_API_H_ */提示: 确保每个
#include都直接使用文件名,不带额外的路径前缀,因为这些头文件都与nrc_api.h位于同一cpp_interface/目录下。
(2) 修改 cpp_interface/ 下头文件对 parameter/ 目录的引用路径
nrc_api.h 所包含的各个头文件(如 nrc_craft_conveyor_belt_track.h、nrc_interface.h 等)内部还会引用 parameter/ 目录下的头文件。由于这些头文件位于 cpp_interface/ 目录下,需要使用相对路径 ../parameter/ 来定位 parameter/ 目录。
以 nrc_craft_conveyor_belt_track.h 为例,将其内部的头文件引用修改为如下形式:
#ifndef INCLUDE_CPP_INTERFACE_NRC_CRAFT_CONVEYOR_BELT_TRACK_H_
#define INCLUDE_CPP_INTERFACE_NRC_CRAFT_CONVEYOR_BELT_TRACK_H_
#include "../parameter/nrc_define.h"
#include "../parameter/nrc_craft_conveyor_belt_track_parameter.h"
......提示: 需要对
cpp_interface/目录下所有头文件逐一检查,凡是引用了parameter/目录下头文件的地方,都要统一使用../parameter/xxx.h的相对路径格式。常见的被引用文件包括nrc_define.h、各类*_parameter.h等。
(3) 编写连接测试代码
#include <iostream>
#include <windows.h>
#include "libs/include/cpp_interface/nrc_api.h"
int main()
{
// 1. 连接控制器
SOCKETFD fd = connect_robot("192.168.1.15", "6001");
if (fd <= 0) {
std::cout << "连接失败,请检查 IP 和端口" << std::endl;
return 1;
}
// 2. 等待连接就绪
while (get_connection_status(fd) != 0) {
Sleep(200);
}
std::cout << "连接成功!fd = " << fd << std::endl;
std::cout << "SDK 版本: " << get_library_version() << std::endl;
// 3. 断开连接
disconnect_robot(fd);
return 0;
}2.5 编译运行
选择 Release x64 配置,点击"本地 Windows 调试器"。控制台输出 "连接成功" 即表示配置正确。
如果使用 Debug 版本的库,需将配置切换为 Debug x64。
下一步
完成连接测试后,请浏览接口示例了解更多 API 用法。