C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: MemoryMappedFile について


(過去ログ 133 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■78606 / inTopicNo.1)  MemoryMappedFile について
  
□投稿者/ 納豆 (14回)-(2016/01/28(Thu) 00:34:36)

分類:[C/C++] 

こんにちわ。

Win32API の MemoryMappedFile にて、メモリ共有をしようとしているのですが、(何度かした事があります。)
このファイルに複数プロセスからアクセスする場合、排他制御等は必要でしたでしょうか?

今まで作成した物では、特にしていなくても共有できました。各プロセスが読み書きしても大丈夫でしたが、
今回作成しているプログラムだと、既にマッピングされたファイルを取得しただけで、
既に実行されている(ファイルを作ったプロセス)が System.AccessViolationException を出してしまいます。

Webを検索してみましたが、色々ありすぎて結局どうなのかよくわからない状態です。
ご意見お願い致します。
引用返信 編集キー/
■78607 / inTopicNo.2)  Re[1]: MemoryMappedFile について
□投稿者/ 774RR (372回)-(2016/01/28(Thu) 06:20:11)
2016/01/28(Thu) 06:21:13 編集(投稿者)

マネージ・アンマネージの混在環境なのだろうか > Win32API+System.AccessViolationException
だとしたら単なるバグだと思うぞ

マネージ側の値型と参照型の違いを、アンマネージ側で正しく扱いきれてないとか
マネージ側の型サイズとアンマネージ側の型サイズが違うのに気づいてないとか

> 排他制御は必要でしたでしょうか?
必要でないともいえるし、必要であるともいえる。
1つの値を書くだけ、読むだけ、ならば要らないよ。
複数個の値が不可分に更新されなければならないのであれば必要。
ここが AccessViolationExcetion の原因であるとは思えない。
引用返信 編集キー/
■78625 / inTopicNo.3)  Re[2]: MemoryMappedFile について
□投稿者/ 納豆 (15回)-(2016/01/29(Fri) 22:30:56)
>>774RR さん

すいません、しょうもないミスでした…。
MemoryMappedFile のインスタンスを作成した実行ファイルが、
マップファイル内のポインタにnew していました。

おさわがせしました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -