Mobile 如何定义各种Symbian描述符

Mobile 如何定义各种Symbian描述符,mobile,symbian,descriptor,Mobile,Symbian,Descriptor,我在使用Symbian描述符时遇到了一些困难。基本上,我想将各种描述符合并成一个更大的描述符,也许可以将它们放入RBuf中。此外,程序运行的每种类型的数据长度都会发生变化,下面是一些我一直在使用但无法构建的框架代码 HBufC8 * aVar = someObj.aVarData(); HBufC * anotherVar = someObj.anotherVarData(); HBuf8 * someVar = someObj.someVarData(); //Perform some op

我在使用Symbian描述符时遇到了一些困难。基本上,我想将各种描述符合并成一个更大的描述符,也许可以将它们放入RBuf中。此外,程序运行的每种类型的数据长度都会发生变化,下面是一些我一直在使用但无法构建的框架代码

HBufC8 * aVar = someObj.aVarData();
HBufC * anotherVar = someObj.anotherVarData();
HBuf8 * someVar = someObj.someVarData();

//Perform some operation to convert the descriptors to the same type and add them to a RBuf;

RBuf toLog;
toLog.CreateL( _L("Info to Log"));
toLog.Append( aVar );
toLog.Append( anotherVar );
toLog.Append( someVar );

正如您在注释中看到的,我还无法正确地理解如何转换描述符并将其添加到缓冲区。提前感谢。

您的代码看起来大致正确。你有什么错误? 请注意,您正在混合使用8位和16位描述符类型

Read

Append()引用TDesC作为参数。因此,您的代码应该如下所示:

toLog.Append( *aVar );
toLog.Append( *anotherVar );
toLog.Append( *someVar );

快速提问,为什么要使用*aVar而不是aVar->Des()?取消引用hbufc描述符(仅)以获取嵌入式buf比使用完整函数调用aVar->Des()更快。这是symbian中hbufc描述符的基本经验法则(我们在symbian组织中明智地遵循了这一原则)。