如何从Win32 DLL或OCX中提取GUID
题
我们有一个.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实例。
不隶属于 StackOverflow