註意NET某些類型在不同平臺上的長度 NET中用句柄用得最多的是在DLLIMPORT中,混用int與intptr可能會導致某些API聲明在X64平臺中表現不正常,如 [DllImport("Kernel32")] public static extern IntPtr LoadLibrary(str... ...
註意NET某些類型在不同平臺上的長度
NET中用句柄用得最多的是在DLLIMPORT中,混用int與intptr可能會導致某些API聲明在X64平臺中表現不正常,如
[DllImport("Kernel32")]
public static extern IntPtr LoadLibrary(string funcname);
[DllImport("Kernel32")]
public static extern long GetProcAddress(long handle, string funcname);
int _tmain(int argc, _TCHAR* argv[]) { int i = 0; i = sizeof(int); // x86:4 x64:4 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; } |
參考:http://blog.csdn.net/road2010/article/details/21406639