labview导入dll类型匹配问题
时间:10-02
整理:3721RD
点击:
在labview中写了一个子vi,如下:
,两个输入三个输出。导出dll的头文件为
void __stdcall Pic_Process(uintptr_t *PicIn, TD1 *ErrIn, uintptr_t *PicOut, float *AngleOut, TD1 *ErrOut);
之后想利用labview工具导入dll库,将其导入labview中调(不用CLF方法)。
图像输入、错误输入类型不能识别,在错误预处理定义中加入uintptr_t = void;TD1 = void;之后函数就被识别成了
void Pic_Process(unsigned long PicIn, unsigned long ErrIn, unsigned long PicOut, float *AngleOut, unsigned long ErrOut); 如下图所示:

再在用户库中选择导出的Pic_Process函数,不再是图片和错误类型,变成了unsigned long,是怎么回事?应该怎么解决呢?
,两个输入三个输出。导出dll的头文件为void __stdcall Pic_Process(uintptr_t *PicIn, TD1 *ErrIn, uintptr_t *PicOut, float *AngleOut, TD1 *ErrOut);
之后想利用labview工具导入dll库,将其导入labview中调(不用CLF方法)。
图像输入、错误输入类型不能识别,在错误预处理定义中加入uintptr_t = void;TD1 = void;之后函数就被识别成了
void Pic_Process(unsigned long PicIn, unsigned long ErrIn, unsigned long PicOut, float *AngleOut, unsigned long ErrOut); 如下图所示:

再在用户库中选择导出的Pic_Process函数,不再是图片和错误类型,变成了unsigned long,是怎么回事?应该怎么解决呢?
我想说,用LabVIEW去生成dll是NI的工程师都不会做的事情……
实现不了吗?
除非输入输出数据类型是labview与c标准数据类型有对应的,复杂数据类型都会导致各种奇怪复杂的问题。
理论上能解决但是很麻烦
实现的了,但是对于LabVIEW的数据类型在其他平台上调用很容易出Bug。
LabVIEW自身的平台调用应该还好一些,但调dll的意义也不是很大。
