次の関数を持つマネージ C++ クラスを作成しました。
void EndPointsMappingWrapper::GetLastError(char* strErrorMessage)
{
strErrorMessage = (char*) Marshal::StringToHGlobalAnsi(_managedObject->GetLastError()).ToPointer();
}
ご覧のとおり、これは最後のエラーのマネージド文字列をアンマネージド ワールド ( char*
) にコピーする簡単な方法です。
アンマネージ クラスから、次のようにメソッドを呼び出します。
char err[1000];
ofer->GetLastError(err);
マネージ C++ メソッドにブレークポイントを置くと、文字列がchar*
. ただし、アンマネージ クラスに戻ると、の内容err[1000]
が失われ、再び空になります。