• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:DLLの共有メモリと排他処理???)

DLLの共有メモリと排他処理:正しく実装していますか?

このQ&Aのポイント
  • DLLの共有メモリを使用する場合、排他処理が重要です。
  • このDLLは多数のアプリから呼ばれる可能性があり、同時に呼ばれることも考えられます。
  • しかし、現在の実装ではカウンターmに排他処理が施されていないため、問題が生じる可能性があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

OSは排他制御してくれません。 書かれているような単純なオブジェクトであれば、 おそらく問題にはならないと思います。が、 排他が必要かどうかはオブジェクトにアクセスする 呼び出し側の設計に依存します。 排他制御が必要かどうかは シーケンス図を書けばわかりやすいです。

No1Poodle
質問者

お礼

ありがとうございます 『OSは排他制御してくれません』 ← これが分かれば決心が付きました 自分で排他します → 但し、私デッドロックさせる名人なのがぁ~~ ありがとうございました

その他の回答 (2)

  • toshiyuk
  • ベストアンサー率41% (36/87)
回答No.3

Win32API のミューテックス や セマフォー 辺りを調べる と色々、説明があると思います。 http://msdn.microsoft.com/ja-jp/library/cc429064.aspx http://msdn.microsoft.com/ja-jp/library/cc429076.aspx

No1Poodle
質問者

お礼

ありがとうございます 排他を自分でやることに致しましたので参考にさせて頂きます これからも色々とお世話になると思います 宜しくご指導尾お願い申し上げます ありがとうございました

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

例えば EXPORT int CALLBACK CountUP() { m++; ←ここで別アプリに切り替わってCountUPが呼ばれたらどうなるでしょう? return m; } あるいは 実際にはCの命令単位ではなく、コンパイルされた機械語単位で動作するのですから m++ が次のようなコードになった場合 A←m ;/* AはCPUの演算用レジスタ */ A←A+1; ←ここで別アプリでCountUPが最後まで実行されてから戻ってきたらどうなるでしょう m←A;

No1Poodle
質問者

お礼

ありがとうございます とても良くわかりました 今後とも宜しくお願い申し上げます ありがとうございました

関連するQ&A