![]() |
1
1
当uint变得太大时,P/Invoke marshaller不会抱怨,你只会得到一个负int 符合逻辑的 约束。就像字符串的长度或内存块的大小一样,它永远不能是负数。实际上,这样的数字永远不会溢出。因为不可能分配那么多内存。我不记得在一个API中运行过一次,在这个API中,uint应该被使用。因此,我认为您可以直接使用带有int的pinvoke声明。 |
![]() |
2
1
我不认为你会得到正确的行为如果你选择1。Int32只能高达2147483647。而无符号整数则上升到4294967295。只要你知道你不需要任何超过20亿的值,这并不重要。但是为了在技术上正确,公共接口应该公开一个更大的类型,并执行边界检查,以确保它适合一个无符号int,如果不适合,则抛出一个异常。 |
![]() |
E.Meir · 支持一个项目的两个以上版本 8 年前 |
![]() |
J86 · Visual Studio 2013找不到当前的DLL 9 年前 |
![]() |
jayt.dev · 如何指向部件引用的位置? 11 年前 |