BoostInterprocessを使用してプロセス間通信を実装しています。テストとして、ブーストのドキュメントから例を取りました。
最初のプロセス(メッセージキューを作成する)は、他のプロセス(キューからメッセージを受信する必要があります)を使用して開始します。CreateProcess(NULL, (LPSTR)commandStream.str().c_str(), NULL, NULL, FALSE, NULL, NULL, NULL, &si, &pi)
最初のプロセスは、を使用してキューを作成しますmessage_queue mq(create_only, "message_queue", 100, sizeof(int))
。
残念ながら、message_queue mq(open_only, "message_queue")
をスローしinterprocess_exception
ます。例外には、Das System kann die angegebene Dateinichtfindenという説明が含まれています。(システムは要求されたファイルを見つけることができません)。
キューの作成とオープンの両方が1つのプロセスで実行される場合、例外はスローされず、通信はドキュメントに記載されているように機能します。
誰かが例外を引き起こす可能性があるものと私がそれを解決する方法を知っていますか?
編集:私はBoost1.45を使用しています