|
分類:[C#]
Windows7 Home 32bit
メモリマップドファイルの中に入っている構造体のデータを書き換えたいと思います。
このような構造体を作りまして
struct sample() { public bool flagA; public bool flagB; }
Marshal.StructureToPtrを使って構造体の先頭アドレスを参照してデータを書き換えました。 しかし、flagAをtrueにすることはできるのですが、flagBはtrueになることがありませんでした。
調べてみると、メモリマップドファイルのデータをプロパティで直接flagAとflagBが共にtrueにした時、 メモリマップドファイル先のバイト配列データは [1,1,0,0,0,0,0,0] だったのですが、
Marshal.StructureToPtr(構造体データ,構造体の先頭アドレス,false)でポインタから書き換えたときは [1,0,0,0,1,0,0,0] でした。
後者のデータを前者のようなデータにしたい場合はどうすればよいのでしょうか。
|