TPtr的Set函数的问题

dq1981 2005-12-01 10:43:53
用 HBufC::New 分配的内存,不能直接修改
只能通过 TPtr 指针描述符来修改
一般是 iPtr.Set(iBuffer->Des()),指向堆描述符的内存
我想问一下,能不能是指针描述符指向内存中的某个偏移地址
比如我要使指针指向堆内存的第 10 的字节开始
这里不能 iPtr.Set(iBuffer->Des() + 10)
Set函数的另一个类型是 void Set(TUint* aBuf, TInt length);
这里如果用 iPtr.Set(iBuffer.Ptr(), LENGTH);的话,也有问题
因为 Ptr() 函数返回的是 const 型,而Set函数的第一个参数是非const的,编译会报错!
那么要使指针指向一个偏移地址,有什么好的方法呢?
...全文
226 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dq1981 2005-12-01
  • 打赏
  • 举报
回复
Left()这些函数返回的是 TPtrC 类型的指针,不能修改的啊
我需要指针指向某个偏移地址,然后可以修改数据
如果返回的是 TPtr 就可以了
Beover1984 2005-12-01
  • 打赏
  • 举报
回复
Left()
TPtrC16 Left(TInt aLength) const;

Right()
TPtrC16 Right(TInt aLength) const;

Mid()
TPtrC16 Mid(TInt aPos) const;

你可以使用上面的TPtr函数移动指针
mickeyfirst 2005-12-01
  • 打赏
  • 举报
回复
iBuffer.Ptr()返回的值是CONST,但是在类内部不是CONST的,是一个数组.你用const_cast强制转化一下就可以了

3,119

社区成员

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

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