我正在使用其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接口?
答案 0 :(得分:4)
如果你有实际的接口定义(没有类型库),最简单的方法是在这个COM类上编写一个瘦包装器。包装器将带有类型库,可用于编写脚本。获取包装器上的调用,您将它们转发到相关的第三方界面。本机代码包装器可以灵活地完成,甚至可以接管“WinAcquisit.Spectrum”ProgID。