Grundsätzlich würde ich erstmal sagen, dass Java viel einfacher zu lernen ist als C++, da der objektorientierte Ansatz oftmals viel konsequenter umgesetzt wurde. Außerdem ist die Mischung von C++ und C oftmals verwirrend (z.B. kann man Strings als char[] oder als std::string verwenden, um nur 2 Möglichkeiten zu nennen).

Aber letztendlich hängt es sehr davon ab, was du überhaupt willst: - Internet: Java oder C# - Spiele, Treiberprogrammierung unter Windows: C++ bzw. C - Programmierung unter Linux: C++ oder Java - GUI-Programmierung: C++ oder C# (Java geht auch, aber m.E. nicht schön)

...zur Antwort

Am einfachsten wohl, in dem du auf dem Betriebssystem deiner Wahl dir eine am besten kostenlose Entwicklungsumgebung installierst (unter Windows evtl. Visual Studio Express unter Linux keine Ahnung, würde vielleicht mal bei trolltech schauen) und damit experimentierst.

Vielleicht hilft ja auch sowas wie http://openbook.galileocomputing.de/c_von_a_bis_z/

Übrigens: C++ ist keine Fortsetzung von C, sondern ein gänzlich anderer Ansatz. C ist prozedural, C++ objektorientiert.

...zur 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

...zur Antwort