Violation en accès à l'appel de QString::fromWCharArray
Bonjour,
je récupère une valeur du registre dans un whar_t* (LPTSTR en unicode quoi)
et par la suite j'aimerais le stocker dans un QString
mon code est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| CRegKey reg;
wchar_t* sVal;
DWORD dwLen = 512;
int iResult;
iResult = reg.Open( HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Realtime Soft\\UltraMon"), KEY_READ | KEY_WOW64_64KEY );
if ( iResult == ERROR_SUCCESS )
{
iResult = reg.QueryStringValue( _T("CurrentVersion"), sVal, &dwLen );
if ( iResult == ERROR_SUCCESS )
{
_tprintf( TEXT("%i - %s"), dwLen, sVal );
// m_sUMVersion = QString::fromWCharArray(sVal, dwLen);
}
} |
ce qui me donne en sortie : "6 - 3.2.1" et me fait penser que sVal est bien null terminated
si je décommente la dernière ligne, le programme compile bien mais il crash à l’exécution (Test.exe a cessé de fonctionner)
j'ai débugué avec VC++2010 : Violation d'accès lors de l'écriture à l'emplacement 0xffffffff
je suis un peu largué :(