龙哥 Labview 学习群
直播中

龙哥

12年用户 421经验值
擅长:电源/新能源 测量仪表
私信 关注

深度挖掘NI-VISION自带dll隐藏的函数,实现labview修改相机inferface name属性(labview自带函数无法实现)

深度挖掘NI-VISION自带dll隐藏的函数,实现labview修改相机inferface name属性(labview自带函数无法实现)
你是否曾经有过这样的疑问,为什么nimax可以rename相机,而labview不行?(或许还有别的方法,请各位留言)

4.JPG


今天借这个机会,和大家一起探讨,如何深度挖掘ni-vision隐藏的函数
1.JPG
2.JPG
5.JPG
通过枚举相机的函数可以得到相机的interface name 也就是常见的cam 15 ,
3.JPG
但是我们通过摄像头属性无法得到或修改interface name这个属性值
有些时候,我们希望通过软件实现rename相机名称,以防操作人员把相机设错,引起不必要的麻烦。
既然自带函数能实现,那么我们找找其他方法。
思考一下,既然能通过枚举相机的函数得到这个interface name这个属性值,而且能通过NIMAX实现rename属性,那么nivision自带的函数库dll文件,一定有相关函数,因为nimax也是要基于这些dll运行的。因此我们从调用dll函数来找到突破口。
8.JPG
通过查看dll函数,我们真的找到了这个renameinterface函数,剩下的就是要知道,怎么调用这个函数了,其实就是要知道,这个函数的输入和输出数据类型。我们是否可以参考imaqdx中的类似的函数来调用呢,rename只需要输入相机引用和要修改的名称,和write attribute这函数很类似。
6.JPG
看看这个函数的输入类型
游客,如果您要查看本帖隐藏内容请回复

我们再参照这个函数的调用方式,修改一下,
游客,如果您要查看本帖隐藏内容请回复

游客,如果您要查看本帖隐藏内容请回复

把调用的函数替换掉,其他不变
10.JPG
11.JPG
经过测试,果真可以实现rename的功能。
该方法在内存泄漏方面还有待测试,仅供参考,有兴趣的可以再研究下,这个dll中的其他函数。

源码请下载:
游客,如果您要查看本帖隐藏内容请回复
  

回帖(33)

dk1997

2019-10-10 17:00:55
努力向您学习,谢谢分享
举报

韦俊

2019-10-11 10:15:03
努力向您学习,谢谢分享
举报

勤劳的打工人

2019-10-18 04:08:32
下载来学习一下,受教了
举报

魏祖强

2019-10-19 07:15:54
努力向您学习,谢谢分享
举报

更多回帖

发帖
×
20
完善资料,
赚取积分