我已经通过 Wrapper.cpp 中的 IntPtr 将可能本机指针转换为被管理对象下面是我的代码,
_declspec(dllexport)int UnmanagedAlgebraComputation::SubtractMultiplyWrapper(UnmanagedSubtraction *unmanagedSubtraction)
{
AlgebraCSharp::AlgebraComputation^ obj= AlgebraCSharp::AlgebraComputation::GetObject;
unmanagedSubtraction=new UnmanagedSubtraction();
System::IntPtr ip=System::IntPtr(unmanagedSubtraction);
Object^ handle=Marshal::GetObjectForIUnknown(ip) ;
return obj->Subtraction((AlgebraCSharp::SubtractComputation^)handle);
}
但是在线 Object^ handle=Marshal::GetObjectForIUnknown(ip) ; 它将异常抛出为'System.ExecutionEngineException'。请让我知道与此相关的解决方案。