2013-11-25 2 views
6

私は、Windowsアプリケーション用の一種のプラグインとして機能するDLLモジュールを改良しています。どのDLLをどのプロセスでロードしたのかを調べるには?

このプラグインは、1つのソフトウェアラインのさまざまなバージョンと互換性があります。 特定の機能については、親ソフトウェアの設定ファイルにアクセスする必要があります。異なるバージョンのソフトウェアには異なる場所があるので、どのバージョンでDLLが読み込まれているかを調べる必要があります。 別個のバージョンは、プロセス実行ファイル名(abc_v1.exe、abc_v2.exe、abc_v3.exe)によって容易に識別できます。

DLLをロードしたプロセスの名前を取得する方法はありますか?私はいくつかの基本WinAPIコマンドでC++を使用していますが、ATL、MFCなどは使用していません。

現在のところ、自分のSDK機能を使用して親ソフトウェアをポーリングしていますが、接続を開く必要があります。構成ファイルの内容に応じて、DLLは接続を開く必要がないので、通信を確立する前にどのバージョンをロードしたのか知りたいです。

答えて

5

GetModuleFileNameNULLにモジュールハンドルとして渡します。 documentation

パスが要求されているロード済みモジュールのハンドル。このパラメータがNULLの場合、GetModuleFileNameは現在のプロセスの実行可能ファイルのパスを取得します。

+0

ありがとうございました。それは完璧に働いた。 –

関連する問題