C++ GetPrivateProfileSection gibt nur den 1. Key aus

...komplette Frage anzeigen

1 Antwort

Entspricht denn der Rückgabewert der Funktion der Länge deines Schlüssel/Wert-Paares? Laut MSDN werden die einzelnen Einträge nullterminiert zurückgegeben. Da in C++ ein Null-Zeichen = Ende vom String ist, wird, wenn du buffer ausgibst, natürlich nur das erste Paar ausgegeben.

Ohne es jetzt selbst ausprogrammiert zu haben, würde ich sowas wie folgendes bauen:

if (result != sizeof(buffer)-2) // war buffer ausreichend groß?
{
  char* pos = buffer;
  while (pos[0] != '\0')
  { 
    // mit pos was machen; pos = aktueller Eintrag
    pos += strlen(buffer)+1;
  }
}

Übrigens: Einen Puffer von 100 Zeichen halte ich für sehr klein. Achja und wenn du die Funktion aufrufst, mach eher sizeof(buffer) statt 100, ist eine Fehlerquelle weniger.

LG

Was möchtest Du wissen?