将"<num>"附加到 HKCR\TypeLib\ <TypeLib>下的文件路径是什么意思



我已经看到了几个(不是全部)注册表值,例如以下内容,试图解析Typelib注册表下的文件路径时:

HKEY_CLASS_ROOTTypeLib\{EE9CFA8C-F997-4221-BE2F-85A5F603218F}1.0win64(Defalt): C:Program Files (x86)Microsoft OfficerootVFSProgramFilesX64Microsoft OfficeOffice16OCHelper.dll1
HKEY_CLASS_ROOTTypeLib\{F9E34568-0298-46D3-B9C4-19AFB415CBA8}1.0win32(Default): C:Program Files (x86)Microsoft Visual Studio 14.0Common7Packagesmswebprj.dll5
HKEY_CLASS_ROOTTypeLib\{F2A7EE29-8BF6-4a6d-83F1-098E366C709C}1.0win32(Default): C:Program Files (x86)Microsoft OfficeRootOffice16ONENOTE.EXE2

每个文件路径都附加了一个数字。显然,这些文件路径对于文件系统不合法。我想知道是否有人识别语法,以及附录对这些注册表密钥下的Typelib注册意味着什么。

在Visual Studio中使用文件> Open> File> File>: Program Files(X86) Microsoft Visual Studio 14.0 COONM77 packages mswebprj.dll。您会看到DLL中嵌入的资源。打开Typelib节点,您将立即查看5的含义。

这是资源ID。

通常,文件中只有一个类型库,并且具有资源ID#1。有时,类型库未嵌入,而是存储在一个单独的文件中,通常使用.tlb或.olb文件名扩展名。像.net [Comvisible]汇编一样,办公室是一个常见的例子。

通常,我们根据注册表信息使用LoadRegTypeLib进行typelib。函数LoadRegTypeLibLoadTypeLib定义了加载文件。并阅读备注 LoadTypeLib

的部分

默认情况下,类型库是从第一个资源中提取的 类型 Itypelib 加载不同类型的库资源, 将整数索引附加到szfile 。例如:

ITypeLib *ptlib;
LoadTypeLib("C:\MONTANA\EXE\MFA.EXE\3", &ptlib)

此语句从文件mfa.exe加载类型库资源3 文件。

最新更新