2011-10-17 6 views
1

私はサードパーティのアプリケーションをDLLと統合しています。 DLLは、第三者のソフトウェアの実行ごとに数回作成され、破棄されます。どのプロセスが私のDLLプロセスを作成しますか?

私のDLLからは、それが同じサードパーティの実行であるか、私を作成している別のものであるかを認識する必要があります。サードパーティソフトウェアのどのプロセスが私を作成しているかを認識する方法はありますか?

答えて

2

DLLを毎回アンロードする場合は、ロードするたびに何らかの種類の永続ストレージが必要になる可能性があります。呼び出し元のアプリケーションがこの情報を提供しない場合、DLL自体がその情報を実行する必要があります。

named shared memoryの可能性があります。それが存在しない場合は、それを作成し、それを「フラグ」として使用して、同じ実行で再度呼び出されていることを確認します。プロセスが終了すると、プロセスは破棄されます。もちろん、これにはセキュリティの影響が考慮される必要があります。別のプロセスでは、共有メモリーを作成して、実際に最初の呼び出し時に同じ実行で再度呼び出されていることをDLLに「考えさせる」ことができます。

+1

名前付きのミューテックスまたはイベントを使用してください。 CreateMutex + OpenMutex。 –

+1

@ハンス:それは良い点です。私は共有メモリでは、必要に応じていくつかの状態情報を保存できると考えていました。 –

+0

@ハンス:CreateMutex + OpenMutexの使い方についてさらに詳しく調べることができますか?ありがとう。 – Peretz

関連する問題