©2009NationalInstrumentsCorporation.Allrightsreserved©2009NationalInstrumentsCorporation.AllrightsreservedLabVIEW网络讲坛之名家偶得NI资深研发工程师潘晶1、LabVIEW中调用DLL的高级技巧2、.NETInteropAssemblyBuilder3、LabVIEW机器人版©2009NationalInstrumentsCorporation.Allrightsreserved共享、重用代码最有效的方法?Windows.DLLfileMacOS.frameworkUnix/Linux.sofile©2009NationalInstrumentsCorporation.AllrightsreservedLabVIEW下调用DLL的方法•勿在浮沙筑高台——调用库函数节点‐收集必要的信息‐配置调用库函数节点‐调用库函数节点高级设置•剑走中锋——导入共享库工具•随心所以而不逾矩—GetValueByPointer©2009NationalInstrumentsCorporation.Allrightsreserved收集必要的信息•函数代码所在的库文件•在库中使用的函数名称•函数参数的数量和类型,包括返回类型•调用规范库C:\dll\Mydll.dll函数原型:voidMyFunction(inta,double*b,char*string,unsignedlongarraysize,short*dataarray);调用规范:standard©2009NationalInstrumentsCorporation.Allrightsreserved配置调用库函数节点Cln.vi©2009NationalInstrumentsCorporation.Allrightsreserved配置调用库函数节点•dll路径•函数名称•工作线程•调用规则©2009NationalInstrumentsCorporation.Allrightsreserved配置调用库函数节点•参数类型•传递类型•最小长度©2009NationalInstrumentsCorporation.Allrightsreserved复杂数据类型•结构–嵌套的结构–含有指针的结构•数组–多维数组–结构的数组©2009NationalInstrumentsCorporation.Allrightsreserved支持的数据类型通过值通过指针通过句柄通过句柄指针字符串√(C/P)√√结构体☺√√数组√√√如果一个结构体以值方式传入函数,DLL封装会将其展开并将其各部分分别传入CLNCLN解决了大部分数据传入和一部分数据传出的问题.(结构中的指针)©2009NationalInstrumentsCorporation.Allrightsreserved•勿在浮沙筑高台——调用库函数节点•剑走中锋——导入共享库工具‐向导简介‐错误处理‐对复杂信号类型的支持•随心所以而不逾矩——GetValueByPointer©2009NationalInstrumentsCorporation.Allrightsreserved©2009NationalInstrumentsCorporation.Allrightsreserved头文件路径和预定义符号包含路径:解析头文件时的搜索路径预定义符号:#ifdef…©2009NationalInstrumentsCorporation.Allrightsreserved导入函数列表函数列表:选择需要导入的函数操作提示:……©2009NationalInstrumentsCorporation.Allrightsreserved设置导入参数•控件类型•输入/输出•传递方式•默认值•数据类型•函数声明•基本类型•导入函数原型©2009NationalInstrumentsCorporation.Allrightsreserved•勿在浮沙筑高台——调用库函数节点•剑走中锋——导入共享库工具•随心所以而不逾矩——GetValueByPointer‐如何使用GetValueByPointer节点‐自己动手,丰衣足食©2009NationalInstrumentsCorporation.AllrightsreservedGetValueByPointer节点•输入类型:•指针:•字节对齐:•差错输入:•输出值:•差错输出:\vi.lib\Utility\importsl\GetValueByPointer©2009NationalInstrumentsCorporation.AllrightsreservedGetValueByPointer的使用•在LabVIEW中分配内存•为LabVIEW中分配的内存初始化字符串•释放指向LabVIEW中所分配内存的指针©2009NationalInstrumentsCorporation.Allrightsreserved总结•如何使用导函数节点•如何使用导入共享库向导•如何使用GetValueByPointer©2009NationalInstrumentsCorporation.Allrightsreserved更多资源请登录网站ni.com/china/labviewtips免费下载本期相关例程观看网络讲坛系列所有视频免费咨询电话:8008203622