GetLastWin32Error返回的int,而不是UINT

问题描述:

如果Marshal.GetLastWin32Error暴露出从Kernel32.DLLWin32GetLastError功能为什么会重新调谐一个int,其中作为GetLastError返回一个DWORD是无符号的。GetLastWin32Error返回的int,而不是UINT

因为无符号整数不是CLS compliant。在早期,VB.NET和J#无法处理它们,它们是四种支持语言中的两种。这已经得到解决,但仍然有许多语言可以在CLR上运行,但不支持无符号整数,Java是最着名的示例。