GetLastWin32Error返回int而不是uint

时间:2012-07-19 05:24:43

标签: .net pinvoke

如果Marshal.GetLastWin32Error公开了来自Win32的{​​{1}} GetLastError函数,那么为什么它重新调整为int,而Kernel32.DLL返回一个无符号的DWORD

1 个答案:

答案 0 :(得分:3)

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