GetLastWin32Error返回的int,而不是UINT
问题描述:
如果Marshal.GetLastWin32Error
暴露出从Kernel32.DLL
则Win32
GetLastError
功能为什么会重新调谐一个int,其中作为GetLastError
返回一个DWORD是无符号的。GetLastWin32Error返回的int,而不是UINT
答
因为无符号整数不是CLS compliant。在早期,VB.NET和J#无法处理它们,它们是四种支持语言中的两种。这已经得到解决,但仍然有许多语言可以在CLR上运行,但不支持无符号整数,Java是最着名的示例。