Bonjour,
Je n'arrive pas � r�cup�rer une string dans la base de registre pourtant j'arrive bien � l'�crire dans cette derni�re.Tout ce passe bien pour l'�criture(je v�rifie bien au niveau de l'�diteur de la base de registre que la string est bien stock�e) par contre pour la lecture, le AfxMessageBox (Region not recovered) est affich�.
Voici les portions de code pour l'�criture et la lecture:
Ecriture:
Pour la lecture:
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
25
26
27
28
29
30
31
32 HKEY hRegKey; WCHAR wcKeyName[_MAX_PATH]; DWORD dwDisp; DWORD dwRegVal; LPCTSTR pcszRegion; wcscpy(wcKeyName,TN_GPS_INIT_REGISTRY_PATH); // Open the registry record, if exists if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, wcKeyName, 0, 0, &hRegKey ) != ERROR_SUCCESS ) { // Registry entry not found, so create a new one. // Create Registry record if ( RegCreateKeyEx(HKEY_LOCAL_MACHINE, wcKeyName, 0, NULL, 0, 0, NULL, &hRegKey, &dwDisp ) != ERROR_SUCCESS ) { // Error, could not open or create registry key ; return 0; } } // Now create the subkeys //Region pcszRegion = m_region; if (RegSetValueEx(hRegKey,_T("Region"), NULL, REG_SZ, (PBYTE)pcszRegion, (_tcslen(pcszRegion) + 1) * sizeof(TCHAR)) != ERROR_SUCCESS) { ; // could not save key AfxMessageBox(_T("Region Not Written")); }
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
25
26
27
28
29
30
31
32
33
34 HKEY hRegKey; WCHAR wcKeyName[_MAX_PATH]; DWORD dwCount,dwType; BOOL bRegAvail = TRUE; DWORD dwDataSize = 0; CString strValue; // Temp vars to hold values read from registry. Set them to default values first. DWORD dwRegVal; // if the registry entry and data are already there, read them in // else, create one with default data wcscpy(wcKeyName,TN_GPS_INIT_REGISTRY_PATH); if ( RegOpenKeyEx(HKEY_LOCAL_MACHINE, wcKeyName, 0, 0, &hRegKey) == ERROR_SUCCESS) { // Get string region dwCount = sizeof(DWORD); dwType = REG_SZ; if ( RegQueryValueEx( hRegKey, _T("Region"), NULL, &dwType, (PBYTE)(LPTSTR)strValue.GetBuffer(dwDataSize + 1), &dwDataSize ) == ERROR_SUCCESS) { strValue.ReleaseBuffer(); m_region = (CString)strValue; } else { AfxMessageBox(_T("Region not recovered")); strValue.ReleaseBuffer(); } }
Est ce que quelqu'un peut m'aider
Partager