1

我正在尝试编写一种十六进制编辑器(用于编辑 Playstation 1 ISO),但我不确定如何使用CreateViewAccessor.ReadWrite. 具体来说,我不知道第二个参数使用什么,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#。

4

1 回答 1

0

Read<>方法用于从映射中读取任何结构。这里有两个等价的例子——一个使用内置ReadByte方法,另一个使用泛型Read<>方法:

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

通常,out意味着调用方法提供数据作为输出。

于 2013-01-15T01:58:34.097 回答