Добрый день всем! Проблема в следующем:
Я хочу получить значения переменных ветки реестра, но часть значений не читаются, если я меняю порядок чтения этих переменных - то в результате не читаются уже другие
вот код функции
void hardware()
{
DWORD cb = 512;
char buff[cb];
HKEY hKey = 0;
const char* elements[] = {"Identifier", "VideoBiosVersion", "SystemBiosVersion", "VideoBiosDate", "SystemBiosDate", "Configuration Data", "Component Information"};
char* values[6];
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "HARDWARE\\DESCRIPTION\\System",0, KEY_READ, &hKey) == ERROR_SUCCESS)
{
for(int i=0;i<7;i++)
{
if(RegQueryValueEx(hKey, elements[i], NULL, NULL, (BYTE*)&buff, &cb) == ERROR_SUCCESS)
{
values[i] = buff;
printf("%s: %s\n", elements[i], values[i]);
}
else
{
values[i] = "\0";
printf("%s: %s (failed)\n", elements[i], values[i]);
}
}
}
else
{
printf("eric fail!\n");
}
}
так если меняю местами элементы массива elements то результат всё время различный.
Использую MinGw (win7x64)