005
01.09.2006, 15:22 Uhr
~kielfahrer
Gast
|
Die MessageBox war nur da um zusehen was in der Variable drinsteht.
Hier wird eine Funktion aufgerufen die in einer anderen Klasse steht.
C++: |
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ... if(!cfg._LadeSettings()) { return 0; } ... }
|
Diese Funktion wird aufgerufen, die sich wie gesagt in einer anderen Klasse befindet. Diese schreibt auch die Daten in die TCHAR Variable.
sPfad_Logdatei ist TCHAR mit MAX_PATH und trägt den Ort wo die logdatei gespeichert werden soll sPfad_Anwendungspfad ist TCHAR mit MAX_PATH und trägt den Pfad des "Anwendungsdaten" Verzeichnis vom Aktuellen Benutzer
Wenn ich hier eine Messagebox reinsetze und mir sPfad_Logdatei ausgeben lasse steht auch das drin was drin stehen soll, sprich der Pfad der für die Logdatei verwendet werden soll.
C++: |
bool CSettingsLader::_LadeSettings() { ... sprintf(sPfad_Logdatei,"%s\\Name\\logfile.log",sPfad_Anwendungsdateien); ... }
|
Wenn ich jetzt einen Eintrag in die Logdatei erstellen möchte ruf ich die Funktion die sich wieder in einer eigenen Klasse befindet auf. Dort wird auf die Variable der anderen Klasse zugriffen um zu wissen wo die Logdatei gespeichert werden soll.
Wenn ich mir hier jetzt sPfad_Logdatei erneut in einer Messagebox ausgeben lasse kommt der Datenmüll raus. Die Funktion wird von diverse Funktionen in diversen Klassen aufgerufen, aber erst nach dem die Funktion zum laden der Einstellungen ausgeführt wurde.
C++: |
void CLogfileSchreiber::_debug(LPCTSTR sText) { ... CSettingsLader Settings; FILE *file; file = fopen(Settings.sPfad_Logdatei, "a"); ... }
|
wenn ich das so mache wie xXx das vorgeschlagen hat mit dem funktionsaufruf und dort die variable mit messagebox abfrage kommt auch datenmüll raus. als wenn er den variableninhalt nach dem ende der funktionsausführung vergisst/verliert/zerstört oder was auch immer. |