我有一个C++/CLI(VS 2008)混合模式库,用于创建本地对象并在那里调用方法。本机DLL是用纯C++编写的。现在,在我的C++/CLI的包装方法,如果我宣布本机类的对象在C++的方式为什么我应该在混合模式下使用新的本地对象?
ClassA obj;
Obj.Method();
,并使用它,它的工作原理,但我得到System.AccessViolationException: Attempt to read or write protected memory
程序时存在。
但如果我这样做,这样
ClassA *obj = new ClassA();
Obj->Method();
它工作正常。 所以我的问题是为什么我不能在栈上声明一个对象的C++方式?本地代码中的 Destructor
被声明为虚拟。这是原因吗?
我在那个角度尝试了debugginb,删除了第二种情况。并调用析构函数创建任何错误。我也写了一个本地样本来测试它。 – anivas 2010-10-22 11:30:07