描述符转char*的问题

jqr_qtd 2011-12-26 04:18:46
TInt lengthMessage= 100;
HBufC16* messageStr = HBufC16::NewLC(lengthMessage);
TPtr ptrAddress = addressStr->Des();
iMessageEditor->GetText(ptrMessage);

char* test = new char[lengthMessage+1];
strcpy(test ,(char*)test.Ptr());
//Mem::Copy(test, messageStr->Ptr(),messageStr->Length());
test[messageStr->Length()] = '\0';

这样写有问题吗,比如ptrMessage得到了“message”,但在(char*)test.Ptr()后copy过来的只有m了 Mem::Copy()也是一样,问题应该出在(char*)test.Ptr()。大家帮忙看看
...全文
300 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jqr_qtd 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 arthersophy 的回复:]
HBufC8* buf = CnvUtfConverter::ConvertFromUnicodeToUtf8L(aData); // aData is a TDesC16
CleanupStack::PushL(buf);
const TUint8* data = buf->Ptr();
char* result = new (ELeave) char[buf->Length(……
[/Quote]

谢谢arthersophy,这个问题其实是编码方式的问题,找了好久才知道。初学者,举步维艰。
漁_夫 2011-12-29
  • 打赏
  • 举报
回复
HBufC8* buf = CnvUtfConverter::ConvertFromUnicodeToUtf8L(aData); // aData is a TDesC16
CleanupStack::PushL(buf);
const TUint8* data = buf->Ptr();
char* result = new (ELeave) char[buf->Length() + 1];
memclr(result, buf->Length() + 1);
memcpy(result, data, buf->Length());
CleanupStack::PopAndDestroy(buf);

3,120

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧