[C++ Builder] Api NetMessageBufferSend et type wchar_t ...

Api NetMessageBufferSend et type wchar_t ... [C++ Builder] - Programmation

Marsh Posté le 01-03-2002 à 09:56:57    

Bonjour,
 
Déjà qu'est-ce exactement que le type wchar_t par rapport à char...
 
Ensuite pour déclarer une chaîne en wchar_t, je tape :  
 
wchar_t a[] = {'6', '1'}, b[] = {'s', 'a', 'l', 'u', 't'};
 
Puis je veux utiliser l'API du titre de ce topic :
 
je fais #include <lm.h> //déjà dans l'aide de NetMessageBufferSend, ils disaient lmmsg.h, ça marchait pas, j'ai du voir MSDN sur le net ...
 
ensuite :  
 
NetMessageBufferSend(NULL, a, NULL, b, sizeof(b));
 
mais le compilo break et dit :
 
Cannot convert 'wchar_t *' to 'unsigned char *'
puis
Type mismatch in parameter 'buf' (wanted 'unsigned char *', got 'wchar_t *';)
 
 
Merci de votre aide :cry: :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 01-03-2002 à 09:56:57   

Reply

Marsh Posté le 01-03-2002 à 10:36:16    

wchar c'est pour l'unicode, 16bits par caractères
char c'est 8bits
 
et :
b[] = {'s', 'a', 'l', 'u', 't'};
c'est pas une chaîne hein ! c'est juste un tableau de caractères. Pour avoir une chaine valide faut faire
b[] = {'s', 'a', 'l', 'u', 't', 0};
ou plus simplement
b[] = "salut";
mais ca je sais pas si ca passe avec le wchar

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-03-2002 à 09:38:36    

antp a écrit a écrit :

wchar c'est pour l'unicode, 16bits par caractères
char c'est 8bits
 
et :
b[] = {'s', 'a', 'l', 'u', 't'};
c'est pas une chaîne hein !



 
Oui je sais bien que c'est pas une chaîne ;-)
Pour l'API, pas de réponse ?

Reply

Marsh Posté le 02-03-2002 à 11:31:03    

bhen je connais pas la fonction
mais le message d'erreur est clair : il veut une chaine de char et tu lui balance un tableau de wchar :/


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-03-2002 à 11:39:14    

antp a écrit a écrit :

bhen je connais pas la fonction
mais le message d'erreur est clair : il veut une chaine de char et tu lui balance un tableau de wchar :/  




 
Mais quand je lui balance des char *, il me reclame des w_char !!!!!!!!!


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 02-03-2002 à 15:07:02    

Peut être qu'un cast résouderait le problème. Mais je suis sur de rien !

Reply

Marsh Posté le 02-03-2002 à 17:51:58    

antsite a écrit a écrit :

Peut être qu'un cast résouderait le problème. Mais je suis sur de rien !  




 
Salut,
 
Non je n'ai pas casté, il suffisait de faire :
 
wchar_t dest[] = {'o', 'r', 'd', 'i', '\0'};
wchar_t expe[] = {'J', 'U', 'J', 'U', '\0'};
 
____________
 
 
Par contre pour l'avant dernier paramètre, il demande un :
Pointer to a buffer of message text.
 
KeZeKsA ??? C'est koi un buffer (je sais très précisément)
Merci de votre aide
 
Si je fais :
char * msg = "salut";
NetMessageBufferSend(NULL, dest, expe, msg, sizeof(msg));
 
C'est pas bon :cry: :cry: :cry: :cry: ça renvoie des "??"


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 02-03-2002 à 20:23:16    

pourquoi tu te fatigues a mettre les chaines caractère par caractère, c'est quand même plus pratique entre " "...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 02-03-2002 à 21:28:12    

sous vc++ (au moins), de la même manière que tu peux faire
 
char* str = "hello"
 
tu peux faire pour l'unicode :
 
LPCWSTR str = L"hello";

Reply

Marsh Posté le 02-03-2002 à 22:45:35    

youdontcare a écrit a écrit :

sous vc++ (au moins), de la même manière que tu peux faire
 
char* str = "hello"
 
tu peux faire pour l'unicode :
 
LPCWSTR str = L"hello";  




 
youdontcare >> oui mais bon je suis pas sous VC++, et pôôô  
envie :-(
antp >> en wchar_t, je suis obligé (enfin, je crois) d'initialiser cara par cara. puis bon c'est pas le pb !!!
 
SVP !!!


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 02-03-2002 à 22:45:35   

Reply

Marsh Posté le 02-03-2002 à 23:41:11    

youdontcare a écrit a écrit :

sous vc++ (au moins), de la même manière que tu peux faire
 
char* str = "hello"
 
tu peux faire pour l'unicode :
 
LPCWSTR str = L"hello";  




 
bhen sous C++Builder aussi il me semble :heink:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed