文章详情
Labview开发
将 C++ 动态链接库(DLL)封装为 LabVIEW的VI
发布时间:2026-04-24 12:47
浏览次数:2
最后更新:2026-04-27 15:27
使用多种方式将以C++编写的DLL封装为Labview可用的VI
正文内容
一、准备工作(5 分钟)
1.必须满足的条件(全部满足才能批量)
- DLL 是 C++ 标准导出:
extern "C" + __declspec(dllexport) - 调用约定统一:C(cdecl)(C++ 默认)
- DLL 位数 = LabVIEW 位数(64 位对 64 位,32 位对 32 位)
- DLL 路径全英文、无空格、无中文
2.拿到 DLL 全部导出函数(批量必需)
用下面命令导出函数清单(Windows 自带工具):
- 打开
x64 Native Tools Command Prompt - 进入 DLL 所在目录
- 执行:
dumpbin /exports your.dll > func_list.txt - 打开
func_list.txt,复制所有函数名备用。 - 建立标准目录结构(必须这样建)
DLL_LabVIEW/
├─ bin/
│ └─ your.dll ← 你的DLL
├─ vi/ ← 所有封装VI放这里
└─ DLL_Template.vi ← 批量模板(只做1次)
二、制作【万能批量模板 VI】(只做 1 次)
步骤 1:新建空白 VI
步骤 2:放「调用库函数节点」
程序框图 → 右键 → 互联接口 → 库与可执行程序 → 调用库函数节点
步骤 3:双击打开配置(全部照抄)
【库】页
- 库路径:选择 bin/your.dll
- 勾选:在程序框图中指定路径
- 调用约定:C
- 加载方式:在编辑时加载
【函数】页
- 函数名:随便写一个(后面批量改)
- 返回值类型:暂时选 Void
【参数】页
- 留空,后面批量添加
步骤 4:保存为DLL_Template.vi
✅ 模板完成!所有封装 VI 都从这里复制!
三、最优批量封装流程(核心!照做即可)
步骤 1:复制模板(1 秒 1 个)
- 打开 DLL_Template.vi
- Ctrl+C 复制整个程序框图里的 调用库函数节点
- 新建 VI → Ctrl+V 粘贴
- 每个新 VI 只粘一个节点 优势: 所有配置自动继承:路径、调用约定、字符集 不用重复配置!
步骤 2:批量修改函数(每个 10 秒)
双击节点 → 只改 2 个地方:
1)【函数】页
- 函数名 = DLL 导出函数名(完全一样)
- 返回值类型 = C++ 函数返回值
2)【参数】页 严格按 C++ 函数顺序添加参数 参数类型对照表(直接照抄):
| C++ 类型 | LabVIEW 选择 |
|---|---|
| int | 有符号 32 位整数 |
| int* | 有符号 32 位整数 → 勾选【传递→指针】 |
| double | 双精度浮点 |
| double* | 双精度浮点 → 勾选【传递→指针】 |
| float | 单精度浮点 |
| char* | 字符串 → C 字符串指针 |
| void* | 无符号 32 位整数(句柄) |
| 结构体 | 簇 → 按成员顺序匹配 |
输出参数必须勾选:传递 → 指针
步骤 3:自动生成前面板(10 秒)
- 点击调用库函数节点
- 右键 → 创建 → 输入控件
- 右键 → 创建 → 显示控件
LabVIEW 自动生成匹配的前面板,不用手动拖!
步骤 4:保存为子 VI(批量规范)
命名规则:DLL_函数名.vi
全部保存到 vi/ 文件夹
步骤 5:批量设置 VI 图标(可选但推荐)
- 打开 VI
- 右上角图标 → 右键 → 编辑图标
- 统一用一个简单图标(复制粘贴到所有 VI)
四、批量封装完成!最终结构
DLL_LabVIEW/
├─ bin/your.dll
├─ vi/
│ ├─ DLL_Add.vi
│ ├─ DLL_Read.vi
│ ├─ DLL_Write.vi
│ └─ ...所有函数VI
└─ DLL_Template.vi
五、最优稳定性规则(必须遵守)
- 所有 VI 都从模板复制 → 100% 不崩溃
- 调用约定永远选 C(C++ DLL 专用)
- 输出参数必须勾选指针
- 字符串统一用 C 字符串指针
- DLL 放在相对路径 bin 文件夹
- 不使用中文路径、中文 VI 名 遵守以上规则 = 批量封装零报错、零崩溃
正文内容已启用复制保护,代码块仍支持复制。
评论区
0 条已展示评论
发表评论
发表评论
提交后将进入人工审核,审核通过后才会展示。
读者留言
以下仅展示已通过审核的评论内容。