我正在尝试从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位操作系统上都能正常工作?