我在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);
}发布于 2014-02-06 12:40:38
调用MapViewOfFile实际上是对Windows函数MapViewOfFile的调用,因此不应该将其视为HGLOBAL。它是指向内存区域的指针,当您完成它时,您需要调用UnmapViewOfFile。
另外,您从HANDLE获得的CreateFileMapping应该通过调用CloseHandle来关闭。
https://stackoverflow.com/questions/21603130
复制相似问题