在 c++/cli 中设置指向指针的指针
Set a pointer to pointer in c++/cli
我有一个托管 class 并想在 create()
方法中设置本机 class。
ref class ManagedClass {
private:
NativeClass* ptr = nullptr;
public:
void create()
{
NativeClass nativeClass;
nativeClass.set(0);
this->ptr = &nativeClass;
}
};
然而,当 create()
为 运行 时,nativeClass
被删除。因此 this->ptr
变为空。如何让局部变量nativeClass
不被删除?
当定义它们的函数 returns 时,局部变量将不复存在,并且任何记住的指向此类局部变量的指针都会变得无效。这在 C++/CLI 与非托管 C++ 中没有什么不同。
要创建一个在 create
调用之后持续存在的对象,动态分配它并使用 ptr = new NativeClass();
保存指向它的指针(然后不要忘记 delete ptr;
当不再需要)。
我有一个托管 class 并想在 create()
方法中设置本机 class。
ref class ManagedClass {
private:
NativeClass* ptr = nullptr;
public:
void create()
{
NativeClass nativeClass;
nativeClass.set(0);
this->ptr = &nativeClass;
}
};
然而,当 create()
为 运行 时,nativeClass
被删除。因此 this->ptr
变为空。如何让局部变量nativeClass
不被删除?
当定义它们的函数 returns 时,局部变量将不复存在,并且任何记住的指向此类局部变量的指针都会变得无效。这在 C++/CLI 与非托管 C++ 中没有什么不同。
要创建一个在 create
调用之后持续存在的对象,动态分配它并使用 ptr = new NativeClass();
保存指向它的指针(然后不要忘记 delete ptr;
当不再需要)。