Verbesserungsvorschlag: INI File
-
Ich habe folgenden Code zum erstellen und auslesen von INI Dateien:
string file = "c:\\file.ini"; char tmp[100]; DWORD destSize = 500; WritePrivateProfileString("Überschrift", "Name", "Wert", file.c_str()); GetPrivateProfileString("Überschrift", "Name", "NULL", tmp, destSize, file.c_str());Ich bin kein großer Fan von festen Arrays, wie würdet ihr das lösen?
-
kernel64 schrieb:
wie würdet ihr das lösen?
Nicht die WinAPI-Funktionen dafür verwenden. Am besten schreibst du dir eine eigene Klasse für diesen Zweck. Ansonsten gibts da auch vorgefertigte Lösungen (z.B. meine, die du z.B. hier im Ordner "ucl" findest).
-
Oder Du setzt gleich auf die boost::programm_options.
Noch besser
.
-
Du kannst einfach prüfen ob der Puffer genügt hat. Der Returnwert wäre dann Größe des Puffers -1. In diesem Fall Puffer verdoppeln und Anfrage erneut stellen.
-
Ist es nicht besser auch sicherer mit Strings zu arbeiten?
-
Was meinst Du mit besser? Man kann nicht direkt auf std::string zugreifen und entsprechend diese Klasse an API Funktionen übergeben. CString hat dafüt GetBuffer. Aber im Zusammenspiel mit der API musst Du immer mit Puffern arbeiten. Es steht Dir aber frei einfach einen mit new anzulegen und so war meine Idee gemeint.