2

別の dll から情報を取得する 2 つのコールバック関数を持つ小さな C++ dll があります。

これら 2 つのコールバック関数は、複数のスレッドで繰り返し呼び出されています。

どちらも同じグローバル Cstring 変数に情報を追加します。

このdllを使用するプログラムが呼び出す別の関数があり、この変数を読み取ります。

まれですが、クラッシュが発生することがあります。これは、このグローバル変数が 2 つの異なる関数によって同時に読み書きされることが原因であることは間違いありません。

私はマルチスレッドの経験があまりないので、何をすべきかよくわかりません。

助言がありますか?

これは、同じ問題について投稿した以前の質問で、もう少し情報があります..(およびコードの一部)。ユーザーの 1 人が、それがマルチスレッドの問題であることを確認するのを手伝ってくれましたが、それ以上のことはできませんでした。

C++ DLL のクラッシュ (読み取り/書き込みのクラッシュ関連だと思います)

4

2 に答える 2

1

初心者のためのスレッド同期を読んでください。

MFCを使用している場合CMutexは、適切な場合があります。

于 2012-07-25T13:10:29.183 に答える
0

この変数にクリティカル セクションを作成する必要があります。Windows では、 Mutex Objectsを使用して実行できます。

于 2012-07-18T17:22:09.287 に答える