1. 使用自己开发DLL中的函数。
2. 调用操作系统或硬件驱动供应商提供的API。
对于前一种方法来说,又可以通过以下几步来实现:
a) 在LabVIEW中定义DLL原型;
b) 生成.C或.C++文件,完成实现函数功能的代码并为函数添加DLL导出声明;
c) 通过外部IDE(如VC++)创建DLL项目并编译生成.dll文件。
d) 在LabVIEW项目中使用DLL中的函数。
一、配置Call Library Function Node(CFN)
无论在LabVIEW中使用自己开发的DLL,硬件驱动供应商或者操作系统提供的API,都可以通过配置Call Library Function Node
在CFN图标的右键菜单上选择“Configure…”打开Call Library Function配置对话框,通过该对话框,可以指定动态库存放路径、调用的函数名以及传递给函数的参数类型和函数返回值的类型。在配置完后,CLF节点会根据用户的配置自动更新其显示。通过Browse按钮或者直接在“Library Name or Path”输入框中指定调用函数多在.dll文件的路径。通过Browse按钮下的控件用户可以指定多个线程同时调用DLL。默认情况下,LabVIEW以“Run in UI Thread”方式调用DLL,调用的函数将直接在用户线程中运行。另外一种方式为递归方式“Reentrant”,在这种情况下可以允许多个线程同时调用DLL中的函数。但要确保正常调用,必须使DLL中的代码线程安全。以下是一些最基本的线程安全特性:
a. 代码不含有未受保护的全局数据(如全局变量,文件);
b. 代码不访问硬件(即不含有寄存器一级的代码);
c. 代码不调用非