我在X64上运行
这是我的代码:
ColorFileMapping = CreateFileMapping(new IntPtr(-1), IntPtr.Zero, 0x04, 0, _byteCount, null);
ViewerImageData = MapViewOfFile(ColorFileMapping, 0xF001F, 0, 0, _byteCount);
但是当我尝试处理这个IntPtr时,我得到一个BadImageFormatException
你可以解释一下原因吗?public void Dispose()
{
Marshal.FreeHGlobal(ViewerImageData); //here i get the exception
Marshal.FreeHGlobal(ColorFileMapping);
}
答案 0 :(得分:2)
您致电MapViewOfFile
实际上是对Windows API函数MapViewOfFile的调用,那么您不应将其视为 HGLOBAL 。它指向一个内存区域,当你完成它时,你需要调用UnmapViewOfFile。
此外,您应该通过拨打CreateFileMapping来关闭从CloseHandle返回的HANDLE
。