我们有一个.NET应用程序需要检查一个可能包含COM库的文件夹(DLL和OCX。)当我们遇到COM库时,我们需要完成的一件事就是从COM DLL或OCX中提取GUID。

在不使用第三方库的情况下,是否有一种直接的方法可以使用.NET执行此操作?

有帮助吗?

解决方案

这应该对您有用。它需要参考 C: Windows System32 tlbinf32.dll, ,但是我假设这还可以,因为它不是第三方组件。

Imports TLI 'from c:\windows\system32\tlbinf32.dll

Dim reglib As TLI.TLIApplication = New TLI.TLIApplicationClass()
Dim DLLPath As String = "c:\mycomponent.ocx"
MsgBox(reglib.TypeLibInfoFromFile(DLLPath).GUID.ToString())

其他提示

为此,您将必须使用Interop(P/Invoke和COM)来执行此操作。首先,您必须致电 LoadTypelib 要获取类型库的Itypelib接口。

从那里,您将必须使用有关该方法的方法,以获取库的GUID,或获取图书馆中定义的任何内容的CLSID或IID实例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top