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

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

如果调用的dll的返回值是结构类型,如何解决?

现在手上有一个dll,其中有个函数的返回值是结构类型,如何能够在LabVIEW中实现成功调用?
0 项奖励
1 条消息(共 14 条)
6,141 次查看
结构类型 => Cluster
George Zou
0 项奖励
2 条消息(共 14 条)
6,130 次查看
我知道结构类型对应于Cluster,但是返回值类型里只有Void,Number,String三个选项。能给个例子参考一下吗,谢谢!
0 项奖励
3 条消息(共 14 条)
6,124 次查看

如果函数返回的是struct的值,那么调用函数节点无法支持,建议使用参数传递。

如果函数返回是struct的指针,可以当成一个numeric 返回并使用<vi.lib>\Utility\importsl\GetValueByPointer\GetValueByPointer.xnode 来通过指针取得相应簇的值。

0 项奖励
4 条消息(共 14 条)
6,038 次查看
你好!我想在遇到一个我难题,想请教一下,就是利用DLL中有个函数返回的结构体的指针,然后利用GetValueByPointer.xnode得到结构体,但是现在的问题是这个结构体中有一个成员是个数组指针,利用GetValueByPointer.xnode得到的结构体中其他成员的数据都是对的,只要不是指针类型的,但是就是这个数组指针成员返回的都是零,本来我是想利用返回的数组指针再次利用GetValueByPointer.xnode函数等到这个数组指针对用的数组数据的,但是怎么弄都不行那个,请帮忙指导一下。这个类似这样的一个函数和数据:

typedef struct Image_Data
{
int nSize;
int nChannels;
int width;
int height;
char *imageData;
int widthStep;
}
Image_Data;

Image_Datae* Img;

Img = LoadImage( "test.jpg", 1);

就是利用Img这个指针等到Image_Data这个结构体中的char*imageData时返回的是零,而在VC中调试可以看出返回的是个指针地址。以上请帮忙!谢谢了!我怎样才能得到机构体中imageData这个数组的数据呢?
0 项奖励
5 条消息(共 14 条)
5,123 次查看

把LV中对应Image_Data的cluster中的imageData改为Int32, 用GetValueByPointer.xnode得到结构体后看看值是什么,如果拿到了指针,再用GetValueByPointer.xnode

0 项奖励
6 条消息(共 14 条)
5,115 次查看

我也想知道通过调用c++的程序是怎么解决结构体问题的,请教

0 项奖励
7 条消息(共 14 条)
4,958 次查看

调用函数节点只支持c++中通过extern "C" 导出的函数。

0 项奖励
8 条消息(共 14 条)
4,954 次查看

我知道,我想返回一个结构数组到LabVIEW里面。

0 项奖励
9 条消息(共 14 条)
4,951 次查看

基本上,很难。建议你返回指向结构数组的指针,然后用上面我说的方法来取值。

0 项奖励
10 条消息(共 14 条)
4,947 次查看