使用& # 39;CreateViewAccessor.Read& # 39;和& # 39;写# 39;
本文关键字:CreateViewAccessor 使用 Read | 更新日期: 2023-09-27 17:52:58
我正试图编写一种十六进制编辑器(用于编辑Playstation 1 ISO),但我不确定如何使用CreateViewAccessor.Read
和Write
。具体来说,我不知道第二个参数out T structure
该用什么。下面是我到目前为止的代码:
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++好得多。
Read<>
方法用于从映射中读取任何结构。下面是两个等效的示例——一个使用内置的ReadByte
方法,另一个使用通用的Read<>
方法:
bytes[i] = accessor.ReadByte(i);
accessor.Read<byte>(i, out bytes[i]);
通常,out
表示调用方法提供数据作为输出。