2017-09-17 17 views
1

TypeLibレジストリキーの下のファイルパスを解析しようとすると、 :HKCR TypeLib <TypeLib>のファイルパスに " <num>"を追加することは何を意味する

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 

各ファイルパスには、バックスラッシュと数字が続きます。明らかに、これらのファイルパスはファイルシステムに対して合法ではありません。私は誰もが構文を認識しているかどうか、これらのレジストリキーの下でtypelib登録に付録が何を意味するのだろうかと思います。

答えて

0

通常、レジストリ情報に基づいてロードタイプライブラリにLoadRegTypeLibを使用します。関数LoadRegTypeLibLoadTypeLibへのアクセスを許可してファイルをロードします。デフォルトでLoadTypeLib

ため解説セクションを読んで、タイプライブラリは タイプITypeLibの最初のリソースから抽出されます。 異なるタイプのライブラリリソースをロードするには、 は、整数インデックスをszFileに追加します。たとえば:

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

この文は、ファイルMfa.exe ファイルからタイプライブラリリソース3をロードします。

0

Visual Studioでファイル>開く>ファイルを使用し、C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ Packages \ mswebprj.dllを選択します。 DLLに埋め込まれたリソースが表示されます。 TYPELIBノードを開くと、5が何を意味するのかが即座にわかります。

これはリソースIDです。

より一般的には、ファイルに埋め込まれているタイプライブラリは1つしかなく、リソースIDは#1です。場合によっては、タイプライブラリは埋め込まれていないが、通常は.tlbまたは.olbファイル名の拡張子を持つ別のファイルに格納されます。 .NET [ComVisible]アセンブリのように、Officeは一般的な例です。

関連する問題