mai_mai_mail回答ポイント 200ptウォッチ

VS2015 C#でメモリマップドファイルのプログラムを書いています。実行時にエラーが出ます。教えてください。

//aaa.csファイル: 
public partial class Form1 : Form {
public struct MMF {
public MemoryMappedFile Com;
}
struct MMVA {
public MemoryMappedViewAccessor Com;
}
public struct MMV {
public Int32 Com;
}
void CreateOpenMMF(MMF mmf, MMVA mmva, String name) {
mmf.Com = MemoryMappedFile.CreateOrOpen( name+"_Com", sizeof(Int32));
mmva.Com = mmf.Com.CreateViewAccessor(); <=ステップ実行で値あり
}
}

//Form1.cs
public partial class Form1 : Form {
MMF[] mmf = new MMF[8];
MMVA[] mmva = new MMVA[8];  
MMV[] mmv = new MMV[8];

private void Form1_Load(object sender, EventArgs e) {
CreateOpenMMF(mmf[1], mmva[1], "a1");
for (int i = 1; i < 2; i++) {
GetSharedMemValue(mmva[i], mmv[i]);
}
}
private void GetSharedMemValue(MMVA mmva, MMV mmv) {
mmv.Com = mmva.Com.ReadInt32(0) ; <=ここで実行時エラー。null参照。mmva.ComはComがnull
}
}


Form1.csからaaa.csの関数に移って、 mmvaを見ると値がはっているが、mmv.Com = mmva.Com.ReadInt32(0)では、mmva.Comはnull

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2017-02-27 09:48:54
終了日時
2017-03-06 09:50:03
回答条件
1人1回まで

この質問のカテゴリ

この質問に含まれるキーワード

C#561mmf38AAA765関数2326CS321プログラム5048

人気の質問

メニュー

PC版