xuyunhai20160827 Ответов: 1

Вопрос о mapviewoffile в C#


Я написал код на C++ environmental, как показано ниже:
CreateFileMapping(INVALID_HANDLE_VALUE, значение null, PAGE_READWRITE, 0, оператор sizeof(MCDTYPE1), нуль);
MCDTYPE1* pDest = (MCDTYPE1*)MapViewOfFile(hFileMapDest, FILE_MAP_WRITE, 0, 0, 0);

MCDTYPE1-это тип структуры
установите некоторые значения для члена структуры MCDTYPE1.
pDest = & amp; MCDTYPE1;


но как получить значение struct в c#?

Что я уже пробовал:

MCDTYPE1 result = (MCDTYPE1 )Marshal.PtrToStructure(mapView, typeof(UIStruct));

it failed to get values of MCDTYPE1.

1 Ответов

Рейтинг:
0

Midi_Mick

Здесь мне нужно сделать несколько предположений:
1. MCDTYPE1 был объявлен в C#, украшенный символом StructLayoutAttribute(LayoutKind.Sequential).
2. Вы как-то извлечь указатель на pDest в MapView

Я нашел (если вы используете .NET4.6), Самое простое решение-использовать общую форму if PtrToStructure

MCDTYPE1 result = Marshal.PtrToStructure<mcdtype1>(mapView)</mcdtype1>

Иначе, что такое ваш UIStruct? Не должно ли быть так typeof(MCDTYPE1)?