作为指针传递的非托管类型的 C++/CLI 数组
我的问题延续了这个问题 cli/C++ 如何使用非托管定义 cli::array类型元素?
我知道要创建具有非托管类型的托管数组,我需要提供其指针。
array<UserType*>^ args=gcnew array<UserType*>(2);
现在,如果我想将此数组发送到需要 const UserType* 参数的本机函数,我该怎么做?
My question carries forward the issue from
cli/C++ how to define cli::array with unmanaged type element?
I understand that to create a managed array with an unmanaged type, I need to supply its pointer so.
array<UserType*>^ args=gcnew array<UserType*>(2);
Now if I want to send this array to a native function expecting a const UserType*
parameter, how do I go about it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
pin_ptr
。托管数组可能没有固定地址(可以由垃圾收集器重新定位)。编辑:您有一个
UserType*
数组,因此您的非托管函数应该期待UserType* const*
。Use
pin_ptr
. The managed array may not have a fixed address (it can be relocated by the garbage collector).EDIT: You have an array of
UserType*
so your unmanaged function should be expecting aUserType* const*
instead.