3

如果从那时起Marshal.GetLastWin32Error公开该Win32 GetLastError函数,Kernel32.DLL为什么它要重新调整一个 int,而GetLastError返回一个无符号的 DWORD。

4

1 回答 1

3

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

于 2012-07-19T09:40:36.113 回答