gpt4 book ai didi

c++ - 将托管引用传递给采用非托管指针的方法

转载 作者:行者123 更新时间:2023-11-30 04:40:03 24 4
gpt4 key购买 nike

是否有可能使这项工作成功?

template<class T>
fun(T * t) { t->someMemberFunc(); }

...代码中的某处:

ManagedType ^ managedP = gcnew ManagedType();
UnmanagedType * unmanagedP = new UnmanagedType();
fun(managedP);

最佳答案

您不能获取托管对象的地址。垃圾收集器可以在内存中移动它,随时使指针值无效。至少您必须先固定对象。简而言之,我无法提出有效的语法,只是为了进行方法调用而固定是不可取的。您需要将参数声明为跟踪句柄:

template<typename T>
void fun(T^ t) { t->method(); }

关于c++ - 将托管引用传递给采用非托管指针的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1803914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com