C#中怎样定义API中因平台而异的结构体?
例如,TBBUTTON的定义为
typedef struct { int iBitmap; int idCommand; BYTE fsState; BYTE fsStyle;#ifdef _WIN64 BYTE bReserved[6];#else #if defined(_WIN32) BYTE bReserved[2];#endif #endif DWORD_PTR dwData; INT_PTR iString;} TBBUTTON, *PTBBUTTON, *LPTBBUTTON;
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 6)]public byte[] bReserved;
[MarshalAsAttribute(UnmanagedType.ByValArray, SizeConst = 2)]public byte[] bReserved;