|
我想用LabVIEW的导入共享库工具导入一个包含C语言结构体或枚举数据类型的共享库。但是生成该函数的封装VI时失败了,因为该VI中包含了一个空的簇。为什么会这样呢?怎样解决这个问题?
生成的VI中包含空簇意味着C函数原型中包含了LabVIEW所不支持的数据类型。LabVIEW只支持标准的ANSI C数据类型,但是不支持某些供应商提供的非标准数据类型。比如在Visual C中是支持DWORD和BYTE的,但是ANSI C则不支持这两种数据类型。
如果想在LabVIEW中使用共享库工具导入这样的数据类型,必须将这些数据类型转换为相应的标准C数据类型。例如,你可以在包含DWORD和BYTE数据类型的DLL的头文件中加入如下几行:
typedef char BYTE;
typedef int DWORD;
在LabVIEW中,通过Help»Find Examples...,可以打开范例查找器找到一个LabVIEW自带的范例程序叫做Call DLL.vi,该范例给出了不同的C数据类型与LabVIEW数据类型的对应关系。
|