Я работаю на 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);
}
Это вы звоните MapViewOfFile
на самом деле вызов функции Windows API MapViewOfFile тогда вы не должны относиться к нему как к HGLOBAL. Это указатель на область памяти, и когда вы закончите с этим, вам нужно позвонить UnmapViewOfFile.
Так же HANDLE
ты вернулся из CreateFileMapping должен быть закрыт по телефону CloseHandle.
Других решений пока нет …