Как объединить различные дескрипторы Symbian

У меня проблемы с работой с дескрипторами 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 );

Я не смог правильно понять, как преобразовать и добавить дескрипторы в буфер, как вы можете видеть из комментария. Заранее спасибо.


person binarycreations    schedule 24.02.2011    source источник


Ответы (2)


Append () принимает ссылку на TDesC в качестве параметра. Итак, ваш код должен быть таким, как показано ниже:

toLog.Append( *aVar );
toLog.Append( *anotherVar );
toLog.Append( *someVar );
person Viren    schedule 25.02.2011
comment
Быстрый вопрос, почему вы используете * aVar вместо aVar- ›Des ()? - person binarycreations; 26.02.2011
comment
разыменование дескрипторов hbufc (только) для получения встроенного buf выполняется быстрее, чем использование полнофункционального вызова aVar- ›Des (). это основное эмпирическое правило для дескрипторов hbufc в симбиане (и мы разумно следовали ему в рамках симбианской организации). - person Viren; 02.03.2011

Ваш код выглядит примерно правильным. Какая у вас ошибка? Остерегайтесь смешивания 8- и 16-битных типов дескрипторов.

Прочтите http://descriptors.blogspot.com/

person Dynite    schedule 24.02.2011