Печать символов Symbian

Я пытаюсь создать очень простое доказательство того, что я могу написать веб-службу и вызвать ее из среды Symbian. Служба представляет собой простую службу Hello, которая принимает имя в форме const char* и возвращает приветствие в форме «привет» + имя в форме char*. Мой вопрос: как преобразовать char* в TPtrC16, чтобы я мог использовать функцию console->Write для вывода ответа на экран? Я знаю, что мог бы поискать в API и выяснить это, но для базовой концептуальной демонстрации я бы не стал тратить время (не уверен, что Symbian — это то, с чем я когда-либо снова буду работать).

Спасибо!


person Adam E    schedule 27.08.2009    source источник


Ответы (1)


Если строка const char* находится в US-ASCII, вы можете использовать TDes::Copy, чтобы скопировать ее, обернутую в TPtrC8, в 16-битный дескриптор:

const char *who = "world";
TBuf<128> buf;
buf.Copy(TPtrC8((TText8*)who));
console->Printf(_L("hello %S\n"), &buf);

Если кодировка другая, взгляните на charconv API в справке SDK.

person laalto    schedule 27.08.2009
comment
Было несколько вещей, с которыми мне пришлось возиться, чтобы заставить это работать. В итоге код выглядит так: char who = world; TUint8 *i((unsigned char)who); ТБуф‹128› баф; buf.Copy(TPtrC8(i)); консоль-›Printf(_L(привет %S\n), &buf); Я, вероятно, могу изменить некоторые из них, чтобы сделать их красивее, но пока это работает. Спасибо за помощь! - person Adam E; 27.08.2009