VS2015 C#について教えて下さい。メモリマップドファイルについてです。

以下のURLを参考にしています。UnicodeのStringを書き込み、読み込むサンプルURLはありませんでしょうか?

http://mibc.blog.fc2.com/blog-entry-93.html

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2017/02/20 11:05:29
  • 終了:2017/02/27 11:10:03

回答(1件)

id:a-kuma3 No.1

a-kuma3回答回数4524ベストアンサー獲得回数18802017/02/24 16:51:59

ポイント100pt

こちらとか。
https://dotnetcodr.com/2016/12/11/messaging-through-memory-mapped-files-in-net-c-2/
http://devlights.hatenablog.com/entry/20101123/p1


文字列の大きさを多めに取っておくのが嫌なら、サイズも書いておく。

    # Write
    byte[] Buffer = Encoding.UTF8.GetBytes("Hello");
    MemoryMappedFile mmf = MemoryMappedFile.CreateNew("test", 1000);
    MemoryMappedViewAccessor accessor = mmf.CreateViewAccessor();
    accessor.Write(0, (UInt16)Buffer.Length);
    accessor.WriteArray(sizeof(UInt16), Buffer, 0, Buffer.Length);


    # Read
    MemoryMappedFile mmf = MemoryMappedFile.CreateNew("test", 1000);
    MemoryMappedViewAccessor accessor = mmf.CreateViewAccessor();
    ushort Size = accessor.ReadUInt16(0);
    byte[] Buffer = new byte[Size];
    accessor.ReadArray(sizeof(UInt16), Buffer, 0, Buffer.Length); 
    MessageBox.Show(Encoding.UTF8.GetString(Buffer));

http://stackoverflow.com/questions/10806518/write-string-data-to-memorymappedfile

でも、文字列より後に続くデータがあると位置が変わっちゃうので、大きめに取っておく方が無難。
MMF に置いておくデータを、まるっと構造体で持っておいた方が位置を気にしなくて良いので楽なのは、C# も同じです。

コメントはまだありません

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

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません