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 :
ce qui me donne en sortie : "6 - 3.2.1" et me fait penser que sVal est bien null terminated
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 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); } }
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é![]()
Partager