2012-04-19 6 views
1

Windows上のC++で最小限のosgiライクなモジュール化フレームワークを実装する必要があります。 Javaと同様に、私はモジュールをダイナミックリンクライブラリとして自己完結型ユニットとして出荷したいと考えています。 .jarファイルは実際にはコンテナですが、.dllファイルは実際にコンパイルされたコードの一部です。したがって、メタデータを.dllファイルに格納してC++プログラムにアクセスすることも可能ですか?Windows:DLLのメタ情報

答えて

1

これを行う最も簡単な方法は、メタデータをDLL内のリソースとして格納することです。その後、Windows APIリソース関数を使用してメタデータを抽出できます。 DLLをコードモジュールとしてロードする必要はなく、単にデータモジュールとしてロードしてメタデータリソースを抽出することもできます。

LoadLibraryを使用してライブラリをロードします。次に、FindResourceLoadResourceを使用してメタデータを抽出できます。

+2

リソースだけが必要な場合は、LoadLibraryEx(...、LOAD_LIBRARY_AS_DATAFILE)を使用してください(Vistaでは、さらに特殊なオプションがあります)。 – MSalters

関連する問題