处理BadImageFormatException

时间:2014-02-06 12:33:45

标签: c# c++ c++-cli dispose

我在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);
 }

1 个答案:

答案 0 :(得分:2)

您致电MapViewOfFile实际上是对Windows API函数MapViewOfFile的调用,那么您不应将其视为 HGLOBAL 。它指向一个内存区域,当你完成它时,你需要调用UnmapViewOfFile

此外,您应该通过拨打CreateFileMapping来关闭从CloseHandle返回的HANDLE

相关问题