1
工會我有造型在C#以下結構的任務:建模C/C++在C#
typedef struct _SHELLEXECUTEINFO {
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCTSTR lpVerb;
LPCTSTR lpFile;
LPCTSTR lpParameters;
LPCTSTR lpDirectory;
int nShow;
HINSTANCE hInstApp;
LPVOID lpIDList;
LPCTSTR lpClass;
HKEY hkeyClass;
DWORD dwHotKey;
union {
HANDLE hIcon;
HANDLE hMonitor;
} DUMMYUNIONNAME;
HANDLE hProcess;
} SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;
工會在這裏可以模擬成這樣
[StructLayout(LayoutKind.Explicit)]
struct Union
{
[FieldOffset(0)]
IntPtr hIcon;
[FieldOffset(4)]
IntPtr hMonitor;
}
這讓我思考.. 。由於IntPtr的大小從32位機器上的4變爲64位機器上的8,所以當使用FieldOffset時,如果示例顯示FieldOffset爲4,對於32位機器,該如何補償?
啊哈!這清除了一切!謝謝! +1 – series0ne