Hallo,
edit: by the way... wir arbeiten mit Visual Studio 6.0 / Visual C++ unter Windows 2000.
normalerweise sagt man ja, daß ein PC genau das macht, auf was man ihn programmiert hat. Nicht so diese Kiste hier... hab hier ein Problem, das keiner meiner Kollegen (Ingeneure dabei) versteht. Ich mache das da:
aber nach dem Aufruf ist der String xxx leer. Er wird nicht initialisiert. Das selbe Konstrukt habe ich an diversen anderen Stellen auch. Überall funktioniert's. Nur in dieser Funktion nicht. Und es gibt keinen sichtbaren Unterschied zu den anderen Funktionen. Keine versteckten Kommentarzeichen, keine Sonderzeichen... 1:1 kopiert. Und funktioniert nicht.
Wir haben eine String-Template-Klasse selbstgebaut, die ebenfalls Zuweisungsoperatoren etc. hat. Auch mit dieser Klasse tritt dieses Problem auf. Und auch wieder NUR in dieser Funktion. Überall anders funktioniert das. Wir machen da sowas:
Als Ergebnis dieser Operationen steht im String nur "HALLO". Weder die Initialisierung funktioniert, noch das zweite Anhängen des Strings "BLUBB". Und wie gesagt, an anderen Stellen funktioniert dies absolut einwandfrei. Nur eben hier nicht.
EDIT: std::basic_string weist das selbe dämliche Verhalten auf.
Selbst das da funktioniert nicht:
In der Funktion bla(string,string) sind beide Strings leer! Das ist ein völlig widersinniges Verhalten!
EDIT: Hammer! Nichtmal das funktioniert:
selbst hier steht in bla nachher nichts drin. Wir probieren mal sprintf statt strcpy. Mal sehen...
edit: sprintf geht auch nicht! Ich dreh hier am Rad!
GEHT NICHT! *HEUL* *FLENN*
...geht auch nicht... *TILT* *resignier*
Wir sitzen da schon seit Stunden dran. Wir finden nix. Ich werd langsam depressiv.
Gruß,
Hendrik
edit: by the way... wir arbeiten mit Visual Studio 6.0 / Visual C++ unter Windows 2000.
normalerweise sagt man ja, daß ein PC genau das macht, auf was man ihn programmiert hat. Nicht so diese Kiste hier... hab hier ein Problem, das keiner meiner Kollegen (Ingeneure dabei) versteht. Ich mache das da:
Code:
CString xxx = "HALLO";
aber nach dem Aufruf ist der String xxx leer. Er wird nicht initialisiert. Das selbe Konstrukt habe ich an diversen anderen Stellen auch. Überall funktioniert's. Nur in dieser Funktion nicht. Und es gibt keinen sichtbaren Unterschied zu den anderen Funktionen. Keine versteckten Kommentarzeichen, keine Sonderzeichen... 1:1 kopiert. Und funktioniert nicht.
Wir haben eine String-Template-Klasse selbstgebaut, die ebenfalls Zuweisungsoperatoren etc. hat. Auch mit dieser Klasse tritt dieses Problem auf. Und auch wieder NUR in dieser Funktion. Überall anders funktioniert das. Wir machen da sowas:
Code:
String bla = "TEST";
bla += "HALLO";
bla += "BLUBB";
Als Ergebnis dieser Operationen steht im String nur "HALLO". Weder die Initialisierung funktioniert, noch das zweite Anhängen des Strings "BLUBB". Und wie gesagt, an anderen Stellen funktioniert dies absolut einwandfrei. Nur eben hier nicht.
EDIT: std::basic_string weist das selbe dämliche Verhalten auf.
Selbst das da funktioniert nicht:
Code:
string bla(string a, string b)
{
// a und b sind hier entgegen (!) der übergebenen Parameter == "";
return a + b;
}
void blubb()
{
string ccc = "";
ccc = "HALLO";
ccc = bla(ccc, "TEST");
// Herauskommen sollte eigentlich ccc == "HALLOTEST";
}
In der Funktion bla(string,string) sind beide Strings leer! Das ist ein völlig widersinniges Verhalten!
EDIT: Hammer! Nichtmal das funktioniert:
Code:
char bla[256];
strcpy(bla,"TEST");
selbst hier steht in bla nachher nichts drin. Wir probieren mal sprintf statt strcpy. Mal sehen...
edit: sprintf geht auch nicht! Ich dreh hier am Rad!
Code:
char bla[256];
sprintf(bla,"HALLO");
GEHT NICHT! *HEUL* *FLENN*
Code:
CString *honk = new CString("HALLO");
...geht auch nicht... *TILT* *resignier*
Wir sitzen da schon seit Stunden dran. Wir finden nix. Ich werd langsam depressiv.
Gruß,
Hendrik
Zuletzt bearbeitet: