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:

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"));
}
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
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