2009-08-27 2 views
1

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

Спасибо!

ответ

2

Если 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); 

Если в какой-либо другой кодировке, имеют вид в API charconv в справке SDK.

+0

Было несколько вещей, с которыми мне пришлось столкнуться, чтобы заставить это работать. В конце код выглядит так: \t \t char * who = "world"; \t \t TUint8 * i ((unsigned char *) who); \t \t TBuf <128> buf; \t \t buf.Copy (TPtrC8 (i)); \t \t console-> Printf (_L («hello% S \ n»), &buf); Возможно, я смогу реорганизовать часть этого, чтобы сделать его более красивым, но он работает пока. Спасибо за помощь! –