作为指针传递的非托管类型的 C++/CLI 数组

发布于 2024-10-02 15:05:17 字数 351 浏览 7 评论 0原文

我的问题延续了这个问题 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

地狱即天堂 2024-10-09 15:05:17

使用 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 a UserType* const* instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文