我在我的程序中使用托管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 ++代码中做错了什么?