LabVIEW调用函数返回指针的动态链接库DLL |
您所在的位置:网站首页 › 输出指针地址怎么设置 › LabVIEW调用函数返回指针的动态链接库DLL |
LabVIEW调用函数返回指针的动态链接库DLL
引言创建动态链接库LabVIEW中调用DllMian.dll结束语
引言
LabVIEW通过调用库函数节点可以调用C/C++生成的动态链接库。首先在VC/CVI/Matlab等语言中设计好完成计算处理任务的动态链接库,通过配置调用库函数节点调用动态链接库中相应的库函数,获取所需的处理结果。在LabVIEW中,通过库函数输出参数(指针或数组参数)以及库函数返回单值获取数据有完善的解决办法,可以参考这篇文章。本文讲述获取函数返回值为指针(含单值和数组指针)数据的方法。 LabVIEW调用库函数节点返回值只有空、数值和字符串三种类型,似乎无法返回指针数据(数组),其实是有解决办法的:对于返回指针的函数,返回的数值为存放数据的地址(对于数组,则为第一个元素的地址),用LabVIEW内置函数MoveBlock即可获取具体数据,下面以具体实例讲解创建DLL及调用、获取数据过程。 创建动态链接库在VC6.0中创建动态链接库项目文件DllMain(创建过程略),代码文件main.cpp如下所示: #include // 也可以 #include #include _declspec(dllexport) double * GetDimData(void) { double *p=(double *) malloc(sizeof(double)*3); p[0]=1.01; p[1]=2.02; p[2]=3.03; return p; } _declspec(dllexport) int * GetSingleData(void) { int *p=(int *) malloc(sizeof(int)); *p=101; return p; }头文件main.h如下所示: _declspec(dllexport) double * GetDimData(void); _declspec(dllexport) int * GetSingleData(void);生成动态链接库DllMain.dll。 LabVIEW中调用DllMian.dll 获取单值指针数据 在LabVIEW新建一个vi,拖一个调用库函数节点到程序框图中,双击节点弹出配置对话框,函数及参数配置如下图所示:解决本文议题的关键是采用了LabVIEW内置的内存管理函数MoveBlock,通过输入数据地址,MoveBlock可以控制从指定地址开始读取多少字节数据,并将读取的数据转化为具体类型的数据。MoveBlock还可读取更复杂类型的数据,具体参见这篇文章。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |