2012-03-13 15 views
1

私は同じハードウェアに2つの独立したC++ .dllを作成しています。両方が同時に接続されていると、コマンドが混在し、ハードウェアが正しく動作しません。だから私はハードウェアに一度に(たとえ両方のDLLがロードされ実行されていても)確実に接続する必要があります。ここで .DLLをシステム全体に公開する方法(Windows)

は、私のこれまでの考えです:接続する前に

  • 、DLLは、DLLを接続したとき、それは他のDLLのファイルを検索し、あれば接続を拒否し
  • 既知の場所にファイルを作成します存在する。
  • 切断後、DLLはファイルを削除します。

これは簡単ですが、もっと良い方法があるのでしょうか? DLLが定義できるシステム全体の変数のいくつかの種類?シンプリシティはここで重要です - コードの行が少ないほど良いでしょう。

答えて

1

CreateMutex機能を使用する

+0

サンプルコードを追加できますか? – japreiss

+0

確か:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686927(v=vs.85).aspx – SecurityMatt

+0

そのコードは、スレッド同期のためのグローバルハンドル変数で無名のmutexを使用します。私は、任意のハンドルを共有せずに、フラグ変数として名前付きのmutexを使用したい。この例は関係ありません。 – japreiss

0

これにグローバルミューテックスオブジェクトを使用できます。

+0

サンプルコードを追加できますか? – japreiss