2

我正在使用其 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 接口?

4

1 回答 1

4

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

于 2013-09-27T15:46:55.857 回答