我寫具有以下功能的託管C++類:字符串爲char *編組
void EndPointsMappingWrapper::GetLastError(char* strErrorMessage)
{
strErrorMessage = (char*) Marshal::StringToHGlobalAnsi(_managedObject->GetLastError()).ToPointer();
}
正如你可以看到,這是一個簡單的方法來最後一個錯誤的託管字符串複製到不可控制的世界(char*
)。
從我的非託管類我把這樣的方法:
char err[1000];
ofer->GetLastError(err);
在託管C++方法把一個斷點顯示,字符串被成功地轉化爲char*
。但是,一旦我回到非託管類,err[1000]
的內容會丟失,並且會再次爲空。