【问题描述】如何查看DLL的以下信息?
库名、类名、GUID(全局唯一标识符)、方法名列表、属性名列表
【小千解答】以查看scrrun.dll为例,借助TLBINF32.DLL的TypeLibInfoFromFile方法。
在VBA编辑界面,依次单击【视图】→【本地窗口】,再按【Ctrl+G】显示“立即窗口”,然后编写如下代码,两次运行。
Sub xqoffice()
Dim TLI As Object
Set TLI = CreateObject("TLI.TliApplication")
Set xqDLL = TLI.TypeLibInfoFromFile("C:\Windows\SysWOW64\scrrun.dll")
Stop
Debug.Print "库名:" & xqDLL.Name
Debug.Print "类名清单:"
For Each Cls In xqDLL.CoClasses
Debug.Print Cls.Name
Next Cls
Debug.Print "第一个类的相关信息:"
With xqDLL.CoClasses(1)
Debug.Print "名称:" & .Name
Debug.Print "GUID:" & .GUID
Debug.Print "方法:"
For Each Mem In .DefaultInterface.Members
If Mem.InvokeKind = 1 Then 'INVOKE_FUNC
Debug.Print Mem.Name
End If
Next Mem
Debug.Print "属性:"
For Each Mem In .DefaultInterface.Members
If Mem.InvokeKind = 2 Then 'INVOKE_PROPERTYGET
Debug.Print Mem.Name
End If
Next Mem
End With
End Sub首次运行后,“本地窗口”显示如下:

继续运行后,结果如下:


【参考资料】