2009-08-27 10 views
1

Je tente de construire une preuve de concept très simple que je peux écrire un service web et appeler le service depuis un environnement symbian. Le service est un simple service Hello qui prend un nom sous la forme d'un const char * et renvoie un message d'accueil de la forme "hello" + name sous la forme d'un char *. Ma question est, comment puis-je convertir un char * en TPtrC16 afin que je puisse utiliser la fonction console-> Write pour imprimer la réponse à l'écran? Je sais que je pourrais chercher à travers l'API et comprendre cela, mais pour une démo conceptuelle de base, je préfère ne pas passer le temps (pas sûr que Symbian est quelque chose avec lequel je vais travailler à nouveau).Impression de caractères Symbian

Merci!

Répondre

2

Si la chaîne const char* est en US-ASCII, vous pouvez utiliser TDes::Copy pour le copier enveloppé dans un TPtrC8 à un descripteur 16 bits:

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

Si elle est dans un autre encodage, un coup d'oeil à l'API charconv dans l'aide SDK.

+0

Il y avait quelques choses que je devais tripoter pour que cela fonctionne. Au final, le code ressemble à ceci: \t \t char * who = "world"; \t \t TUint8 * i ((unsigned char *) qui); \t \t TBuf <128> buf; \t \t buf.Copie (TPtrC8 (i)); Console-> Printf (_L ("bonjour% S \ n"), &buf); Je peux probablement refactoriser une partie de ceci pour le rendre plus joli, mais cela fonctionne pour l'instant Merci pour l'aide! –