C ++调用托管对象方法导致AccessViolationException

时间:2016-12-15 07:46:40

标签: c++ managed-c++

我在我的程序中使用托管dll。我使用此dll中的命名空间创建一个System :: Object

public ref class Class1

此对象有一个公共方法:

returnType getValue()

返回:

public enum class returnType

要使用此方法,请执行以下操作:

// Initialize object
Class1^ firstInstance= gcnew Class1();
// Create empty return type
returnType^ returnedValue = returnType ::EmptyType;
// call method
returnedValue = firstInstance->getValue();

此代码在我调用getValue方法的行处产生AccessViolationException,并解释"尝试读取或写入受保护的内存。这通常表明其他内存已损坏"。

我不熟悉C ++,但似乎是指针错误。我可以使用C#中相同对象的相同方法,没有任何问题,如下所示:

Class1 firstInstance= new Class1();
returnType returnedValue = returnType.EmptyType;
returnedValue = firstInstance.getValue();

我在C ++代码中做错了什么?

0 个答案:

没有答案