我们有一个.NET应用程序需要检查可能包含COM库(DLL和OCX)的文件夹。当我们遇到COM库时,我们需要完成的一件事是从COM DLL或OCX中提取GUID
在不使用第三方库的情况下,使用.NET是否有直接的方法?
答案 0 :(得分:5)
这对你有用。它需要引用 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())
答案 1 :(得分:2)
为了做到这一点,你必须使用互操作(P / Invoke和COM)。首先,您必须调用LoadTypeLib来获取类型库的ITypeLib接口。
从那里开始,您必须使用其中的方法来获取库的GUID,或者获取库中定义的任何内容的CLSID或IID实例。