我需要將非託管指針轉換爲託管對象。 下面是代碼將本地指針強制轉換爲託管對象
Wrapper.cpp
_declspec(dllexport) int UnmanagedAlgebraComputation::SubtractMultiplyWrapper(UnmanagedSubtraction *unmanagedSubtraction)
{
AlgebraCSharp::AlgebraComputation^ obj= AlgebraCSharp::AlgebraComputation::GetObject;
return obj->Subtraction(unmanagedSubtraction);
}
這裏UnmanagedSubtraction
,UnmanagedAlgebraComputation
是我Wrapper.h文件中的類。
SubtractMultiplyWrapper(UnmanagedSubtraction *unmanagedSubtraction)
是我的中的方法wrapper.h這是在我的Wrapper.cpp文件中實現的文件。
問題是我想將管理對象傳遞給obj->Subtraction(unmanagedSubtraction)
,但unmanagedSubtraction
是我的本地C指針。
它引發錯誤的
'AlgebraCSharp :: AlgebraComputation ::減法':不能從轉換 參數1 'UnmanagedSubtraction *' 來 'AlgebraCSharp :: SubtractComputation ^'
如果您有任何與此相關的解決方案,請讓我知道。
Thanks for the Reply.You are Right.We can not convert native pointer into managed object directly.First我們必須將本地指針轉換爲IntPtr,然後將該IntPtr轉換爲ManagedObject。 – user2372247