NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

Labview导入共享库,部分函数导入失败

已解决!
转到解答

我当前想要将一家相机公司的dll驱动通过导入共享库自动生成驱动vi。

dll为Pvcam32.dll

主头文件为pvcam.h

部分预处理定义在master.h

驱动说明书为PVCAM User Manual.zip

 

已知,需要重新定义如下数据类型,以及部分类型指针截图20190924193127.jpg

现在是将部分类型预处理定义为:

rs_bool=bool;int16=__int16;uns16=__uint16;uns32=__uint32;uns8=__uint8;int32=__int32;ulong64=__uint64;flt64=_float64;

问题1:结构体类型应该如何进行预处理定义

问题2:不同类型的指针是否需要特殊定义?相应数组是否需要特殊定义。

 

此外还有:

PV_DECL,PV_C_PLUS_PLUS需要进行预处理定义

 

查master.h得知

PV_DECL=__stdcall;

PV_C_PLUS_PLUS=__cplusplus;

但是实际如此定义并不能解析成功,不知道问题出在哪里。

 

 

 

 

0 项奖励
1 条消息(共 2 条)
2,104 次查看
解答
已被主题作者 阿银丶Ryan 接受

这是很常见的.  LabVIEW 不支持复杂的数据结构.

例如:

pointer of pointer, structure with pointer to structure, ...

 

>问题1:结构体类型应该如何进行预处理定义

简单的结构体 (structure) 不需要改定义

 

>问题2:不同类型的指针是否需要特殊定义?相应数组是否需要特殊定义。

简单的指针, 如 pointer to an integer, 无法区分对应一个数, 还是数组.

 

对于导入失败的函数需要重新包装(生成新的dll).

LabVIEW 与 C++ 不兼容.

 

 

George Zou
2 条消息(共 2 条)
2,083 次查看