大家下午好,
我一直在使用InteropServices.DllImport来访问一些外部DLL。最初我采用了以下不安全的代码:
internal extern static unsafe void CreateArray(Int32 size, [OutAttribute] UInt32* array);
然而,我认为可能可以通过传递UInt32数组而不是指针来替换此不安全的代码,从而将其替换为完全安全的代码。 代码更改如下:
internal extern static void CreateArray(Int32 size, [OutAttribute] UInt32[] array);
这个似乎没有问题。然而,我还是比较谨慎。垃圾回收是否可能会引起问题?传递数组和传递UInt32指针之间有很大的区别吗?是否有我忽略的特殊情况?
感谢您的见解,
Giawa
Uint32[] array
变量不会影响原始数据吗?(例如,它执行复制) - user166390