如果Marshal.GetLastWin32Error
从Win32
公开了GetLastError
Kernel32.DLL
函数,那么为什么要重新调整int,而GetLastError
返回的是未签名的DWORD。
最佳答案
因为无符号整数不是CLS compliant。在早期,VB.NET和J#无法处理它们,这是四种支持的语言中的两种。该问题已得到解决,但是仍然有许多语言可以在CLR上运行,但不支持无符号整数,其中Java是最著名的示例。
如果Marshal.GetLastWin32Error
从Win32
公开了GetLastError
Kernel32.DLL
函数,那么为什么要重新调整int,而GetLastError
返回的是未签名的DWORD。
最佳答案
因为无符号整数不是CLS compliant。在早期,VB.NET和J#无法处理它们,这是四种支持的语言中的两种。该问题已得到解决,但是仍然有许多语言可以在CLR上运行,但不支持无符号整数,其中Java是最著名的示例。