【发布时间】:2008-11-06 19:20:21
【问题描述】:
我编写了一个托管 C++ 类,它具有以下功能:
void EndPointsMappingWrapper::GetLastError(char* strErrorMessage)
{
strErrorMessage = (char*) Marshal::StringToHGlobalAnsi(_managedObject->GetLastError()).ToPointer();
}
如您所见,这是一种将最后一个错误的托管字符串复制到非托管世界(char*)的简单方法。
从我的非托管类中,我这样调用方法:
char err[1000];
ofer->GetLastError(err);
在托管 C++ 方法处设置断点表明字符串已成功转换为 char*。但是,一旦我回到非托管类,err[1000] 的内容就丢失了,又是空的。
【问题讨论】:
标签: .net c++ managed-c++