注意NET某些類型在不一樣平臺上的長度 spa
NET中用句柄用得最多的是在DLLIMPORT中,混用int與intptr可能會致使某些API聲明在X64平臺中表現不正常,如 .net
[DllImport("Kernel32")] blog
public static extern IntPtr LoadLibrary(string funcname); get
[DllImport("Kernel32")] string
public static extern long GetProcAddress(long handle, string funcname); table
int _tmain(int argc, _TCHAR* argv[]) float { gc int i = 0; static i = sizeof(int); // x86:4 x64:4 top i = sizeof(long); // x86:4 x64:4 i = sizeof(void*); // x86:4 x64:8 i = sizeof(short); // x86:2 x64:2 i = sizeof(float); // x86:4 x64:4 i = sizeof(double); // x86:8 x64:8 i = sizeof(int*); // x86:4 x64:8 i = sizeof(WORD); // x86:2 x64:2 i = sizeof(DWORD); // x86:4 x64:4 i = sizeof(LONGLONG); // x86:8 x64:8 i = sizeof(HANDLE); // x86:4 x64:8 i = sizeof(HWND); // x86:4 x64:8 i = sizeof(bool); // x86:1 x64:1 i = sizeof(char); // x86:1 x64:1 return 0; } |