人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VS2015 C#について教えて下さい。メモリマップドファイルについてです。
以下のURLを参考にしています。UnicodeのStringを書き込み、読み込むサンプルURLはありませんでしょうか?

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

●質問者: mai_mai_mail
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント

こちらとか。
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# も同じです。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ