在试图解析TypeLib注册表项下的文件路径时,我看到了几个(并非全部)注册表值,如下所示:
HKEY_CLASS_ROOT\TypeLib\\{EE9CFA8C-F997-4221-BE2F-85A5F603218F}\1.0\0\win64(Defalt): C:\Program Files (x86)\Microsoft Office\root\VFS\ProgramFilesX64\Microsoft Office\Office16\OCHelper.dll\1
HKEY_CLASS_ROOT\TypeLib\\{F9E34568-0298-46D3-B9C4-19AFB415CBA8}\1.0\0\win32(Default): C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\mswebprj.dll\5
HKEY_CLASS_ROOT\TypeLib\\{F2A7EE29-8BF6-4a6d-83F1-098E366C709C}\1.0\0\win32(Default): C:\Program Files (x86)\Microsoft Office\Root\Office16\ONENOTE.EXE\2每个文件路径后面都有一个反斜杠,后面跟着一个数字。显然,这些文件路径对于文件系统是不合法的。我想知道是否有人识别语法,以及附录对这些注册表项下的类型注册意味着什么。
发布于 2017-09-17 21:12:46
通常我们使用LoadRegTypeLib进行基于注册表信息的负载类型选择。函数LoadRegTypeLib延迟到LoadTypeLib来加载文件。以及阅读LoadTypeLib备注部分
默认情况下,类型库是从类型ITypeLib的第一个资源中提取的。要加载不同类型的库资源,请将整数索引附加到szFile。例如:
ITypeLib *ptlib;
LoadTypeLib("C:\\MONTANA\\EXE\\MFA.EXE\\3", &ptlib)此语句从文件Mfa.exe文件加载类型库资源3。
发布于 2017-09-17 20:57:29
在Visual中,使用File > Open > File并选择C:\Program (x86)\Microsoft 14.0\Common7\Packages\mswebprj.dll。您将看到DLL中嵌入的资源。打开TYPELIB节点,您将立即看到5的含义。
这是资源标识。
更典型的情况是,只有一个类型库嵌入在文件中,并且具有资源id #1。有时类型库不是嵌入的,而是存储在单独的文件中,通常带有.tlb或.olb文件扩展名。与.NET ComVisible程序集一样,Office也是一个常见的示例。
https://stackoverflow.com/questions/46268523
复制相似问题