Bonjour,
Je tant par le code suivant d'afficher le user name puis de l'encoder en hexa:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#if defined (Q_OS_WIN32) || defined (Q_OS_WINCE)
/** \brief Return the encoded user name
\return Return the encoded user name open with session */
QString UltracopierWindowsGetUserName()
{
	QString userName;
	DWORD size=0;
	if(GetUserName(NULL,&size) || (GetLastError()!=ERROR_INSUFFICIENT_BUFFER))
	{
	}
	else
	{
		WCHAR * userNameW=new WCHAR[size];
		if(GetUserName(userNameW,&size)){
			userName.fromWCharArray(userNameW,size*2);
			DEBUGCONSOLE(90,"UltracopierWindowsGetUserName","userName before encoding: \""+userName+"\"");
			userName=QString(QByteArray((char*)userNameW,size*2-2).toHex());
		}
		delete userNameW;
	}
	DEBUGCONSOLE(90,"UltracopierWindowsGetUserName","userName: \""+userName+"\"");
	return userName;
}
#endif
Bizarement mon fromWCharArray() me retourne une chaine vide, et:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
QByteArray((char*)userNameW,size*2-2
Me retourne 7500730065007200 pour le nom d'utilisateur: "user"
En utf16 ça devrai étre les 00 avant: 0075007300650072
J'aimerai savoir si j'ai tord, et les causes du problème (qu'es que j'ai mal fait).
Merci d'avance de votre aide.