문제

I'm running on X64

here is my code:

 ColorFileMapping = CreateFileMapping(new IntPtr(-1), IntPtr.Zero, 0x04, 0, _byteCount, null);
 ViewerImageData = MapViewOfFile(ColorFileMapping, 0xF001F, 0, 0, _byteCount);

however when I try to dispose of this IntPtr i get a BadImageFormatException

can you please explain why?

public void Dispose()
 {              
     Marshal.FreeHGlobal(ViewerImageData); //here i get the exception
     Marshal.FreeHGlobal(ColorFileMapping);
 }
도움이 되었습니까?

해결책

It you call to MapViewOfFile is actually a call to the Windows API function MapViewOfFile then you should not treat it as a HGLOBAL. It's pointer to an area of memory, and when you've finished with it you need to call UnmapViewOfFile.

Also, the HANDLE you get back from CreateFileMapping should be closed by calling CloseHandle.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top