Problem mit string
-
Hi, also da ich für fast alles was mit Zeichen zu tun hat "string" benutze, wollt ich dies nun auch bei den Funktiones machen, aber bin dabei auf ein Problem gestoßen:
GetPrivateProfileString("TEST","line","NULL",STRING,100,"c:\\settings.ini"); cout << STRING<< endl;Wenn ich das compilier, meckert der Compiler.
GetPrivateProfileString("TEST","line","NULL",(char*)STRING.c_str(),100,"c:\\settings.ini"); cout << STRING<< endl;Hier meckert der Compiler nicht, aber der String ist leer

Also muss ich bei diesen Funktiones tatsächlich doch char* benutzen ??
Oder wie kriegt man in solche "alten" Funktionen, ein string rein ?Gruß Chris
-
hmm nja so wohl eher nicht ... du castest da mal eben nen const weg ... ganz üble Sache ...
char szString[256]; GetPrivateProfileStringA("TEST", "line", NULL, szString, 256, "C:\\settings.ini"); // std::string string(szString); std::cout << szString /*string*/ << std::endl;die auskommentierten Stellen kannst du auch nehmen ... nur in dem Fall überflüssig ...
Aja die Funktionen sind nicht alt sondern sind auch in C nutzbar
-
Hallo
Nicht wenn der Parameter einen Wert zugewiesen bekommen soll. Du kannst zwar std::string mit c_str() in einen const char* umwandeln, aber der ist nicht umsonst konstant. Deshalb verursacht dein zweiter Code auch undefiniertes Verhalten.
Bei sowas must du wirklich char* und new benutzen.
/Edit : zu spät
bis bald
akari
-
hat mich nur gewundert... bei anderen SAchen funktioniert meine Idee:
GetModuleFileName(NULL,(char*)PATH2.c_str(), MAX_PATH);Hier enthält PATH2 genau das was es enthalten soll, den Pfad!
Naja danke schonmal

Gruß
-
Foxx90 schrieb:
Hier enthält PATH2 genau das was es enthalten soll, den Pfad!
Mann, hast Du ein Glück dass die Kiste nicht explodiert ist

Oder anders: Lass das besser, undefiniert ist undefiniert...
-
Foxx90 schrieb:
hat mich nur gewundert... bei anderen SAchen funktioniert meine Idee:...
"undefiniert" != "Klappt nie"
Ist eher
"undefiniert" ε ["Löst Weltkrieg aus"; "Funktioniert einmalig und besonderen Umständen"]Gruß,
Simon2.
-
alles klar^^ naja, bugs gibet immer

Gruß