文章详情 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 自带工具):

  1. 打开 x64 Native Tools Command Prompt
  2. 进入 DLL 所在目录
  3. 执行:dumpbin /exports your.dll > func_list.txt
  4. 打开func_list.txt,复制所有函数名备用。
  5. 建立标准目录结构(必须这样建)
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 个)

  1. 打开 DLL_Template.vi
  2. Ctrl+C 复制整个程序框图里的 调用库函数节点
  3. 新建 VI → Ctrl+V 粘贴
  4. 每个新 VI 只粘一个节点 优势: 所有配置自动继承:路径、调用约定、字符集 不用重复配置!

步骤 2:批量修改函数(每个 10 秒)

双击节点 → 只改 2 个地方:

1)【函数】页

  • 函数名 = DLL 导出函数名(完全一样)
  • 返回值类型 = C++ 函数返回值

2)【参数】页 严格按 C++ 函数顺序添加参数 参数类型对照表(直接照抄):

C++ 类型 LabVIEW 选择
int 有符号 32 位整数
int* 有符号 32 位整数 → 勾选【传递→指针】
double 双精度浮点
double* 双精度浮点 → 勾选【传递→指针】
float 单精度浮点
char* 字符串 → C 字符串指针
void* 无符号 32 位整数(句柄)
结构体 簇 → 按成员顺序匹配

输出参数必须勾选:传递 → 指针


步骤 3:自动生成前面板(10 秒)

  1. 点击调用库函数节点
  2. 右键 → 创建 → 输入控件
  3. 右键 → 创建 → 显示控件

LabVIEW 自动生成匹配的前面板,不用手动拖!


步骤 4:保存为子 VI(批量规范)

命名规则:DLL_函数名.vi

全部保存到 vi/ 文件夹


步骤 5:批量设置 VI 图标(可选但推荐)

  1. 打开 VI
  2. 右上角图标 → 右键 → 编辑图标
  3. 统一用一个简单图标(复制粘贴到所有 VI)

四、批量封装完成!最终结构

DLL_LabVIEW/
├─ bin/your.dll
├─ vi/
│   ├─ DLL_Add.vi
│   ├─ DLL_Read.vi
│   ├─ DLL_Write.vi
│   └─ ...所有函数VI
└─ DLL_Template.vi

五、最优稳定性规则(必须遵守)

  1. 所有 VI 都从模板复制 → 100% 不崩溃
  2. 调用约定永远选 C(C++ DLL 专用)
  3. 输出参数必须勾选指针
  4. 字符串统一用 C 字符串指针
  5. DLL 放在相对路径 bin 文件夹
  6. 不使用中文路径、中文 VI 名 遵守以上规则 = 批量封装零报错、零崩溃

正文内容已启用复制保护,代码块仍支持复制。

评论区

0 条已展示评论
发表评论

发表评论

提交后将进入人工审核,审核通过后才会展示。

邮箱仅用于必要的联系与基础风控,不会在页面中公开展示。

请文明发言,避免发布广告、链接或敏感内容;短时间内频繁提交会被限制。

隐私提示:提交评论即表示你同意站点为评论展示、审核、防刷与安全风控目的处理你填写的昵称、邮箱和评论内容。

其中邮箱不会公开展示,也不会用于与评论无关的公开用途。

已展示评论

读者留言

以下仅展示已通过审核的评论内容。

0 条评论
当前还没有通过审核的评论,后续可在后台审核后展示。