Я пытаюсь сделать взаимодействие со структурой C ++ из C #. Структура (в оболочке C #) выглядит примерно так
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public struct SENSE4_CONTEXT
{
public System.IntPtr dwIndex; //or UInt64, depending on platform.
}
Базовая структура C ++ немного ненормальна. В 32-битной ОС, dwIndex
должно быть IntPtr
, чтобы взаимодействие могло работать, но в 64-битной ОС оно должно быть UInt64
, чтобы взаимодействие могло работать.
Есть идеи, как изменить вышеуказанную структуру, чтобы она работала как на 32-, так и на 64-битных ОС?