Pinning char[] on P/Invoke call

一世执手 提交于 2019-12-01 23:45:26

No, there is auto-pinning for reference types passed to PInvoke.

From https://msdn.microsoft.com/en-us/magazine/cc163910.aspx#S3:

When the runtime marshaler sees that your code is passing to native code a reference to a managed reference object, it automatically pins the object.

so first approach is ok.

Only:

SomeMeth(buffer, 4095);

I do think it is wrong to sprinkle constants around the code...

SomeMeth(buffer, buffer.Length);

or

SomeMeth(buffer, buffer.Length - 1);

would be probably better.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!