在LabVIEW中使用没有类型库的COM接口

时间:2013-09-18 02:10:59

标签: com labview typelib

我正在使用其COM接口控制第三方软件,但该接口没有类型库。这是旧版软件不再受支持,因此无法获得更新版本。

没有类型库,我可以在VBScript中正常访问所有内容:

Set spc = CreateObject( "WinAcquisit.Spectrum" )
spc.TransmitExperiment

或Python(通过win32):

import win32com.client as cl
spc = cl.Dispatch("WinAcquisit.Spectrum")
spc.TransmitExperiment()

但是,我正在通过LabVIEW控制软件,这似乎需要一个类型库(TL)来选择方法/变量(所有内容都会根据TL中的内容变成下拉列表)。所以我不能在我的LabVIEW代码中使用任何东西。

如果没有匹配的TL,如何在LabVIEW中使用此界面?或者,是否有一种简单的方法来创建TL并将其链接到现有的COM接口?

1 个答案:

答案 0 :(得分:4)

如果你有实际的接口定义(没有类型库),最简单的方法是在这个COM类上编写一个瘦包装器。包装器将带有类型库,可用于编写脚本。获取包装器上的调用,您将它们转发到相关的第三方界面。本机代码包装器可以灵活地完成,甚至可以接管“WinAcquisit.Spectrum”ProgID。