2013-01-15 37 views
1

我想寫一種十六進制編輯器(用於編輯Playstation 1 ISO),但我不知道如何使用CreateViewAccessor.ReadWrite。具體而言,我不知道第二個參數out T structure需要使用什麼。這是我到目前爲止的代碼:使用'CreateViewAccessor.Read'和'寫'

long offset = 0x0064773C; 
long length = 0x02; 

// Create the memory-mapped file. 
using (var mmf = 
    MemoryMappedFile.CreateFromFile(strFileName, FileMode.Open, "ISO")) 
{ 
    using (var accessor = mmf.CreateViewAccessor(offset, length)) 
    { 
     for (long i = 0; i < length; i++) 
     { 
      accessor.Read(i, out ???); 
     } 
    } 
} 

我從來沒有真正理解out關鍵字,所以我不知道該怎麼辦......有

如果有人看到我以前的帖子,我決定使用C#和VS而不是C++和Qt。我知道C#比C++好得多。

回答

0

Read<>方法用於從映射中讀取任何結構。這裏有兩個相同的例子 - 一個使用內置在ReadByte方法,另一種使用通用Read<>方法:

bytes[i] = accessor.ReadByte(i); 
accessor.Read<byte>(i, out bytes[i]); 

一般而言,out意味着調用方法提供數據作爲輸出。