Präprozessoranweisung wird übersprungen
-
Hallo,
Ich verwende für mein main-Programm eine project.lib (enthält u.a. die Klasse KlasseX).
Wenn ich eine Methode der KlasseX in einem Hauptprogramm durchführe (Pfade von project.lib und include-files sind natürlich gesetzt) und debugge, springe ich in folgende Zeilen rein:
string KlasseX ::mf_extractPath(const string &a_sPath) { string t_sSlash; #ifdef LT_LINUX t_sSlash.assign("/"); #elif LT_WINDOWS t_sSlash.assign("\"); #endif string::size_type t_sLast = a_sPath.find_last_of(t_sSlash.c_str()); if(t_sLast != string::npos){ return(a_sPath.substr(t_sLast+1)); } else return(a_sPath.c_str()); }Projekteinstellungen für mein main-Programm:
C++ -> Präprozessor-Definitionen LT_WINDOWSProjekteinstellungen beim Erstellen der project.lib:
C++ -> Präprozessor-Definitionen: keine Angabe von LT_WINDOWS,LT_LINUXMein Problem:
Wenn ich debugge springt mein Curser in der Methode mf_extractPath(..) nicht in die Bedingung LT_WINDOWS rein!!!Was hab ich falsch eingegeben?
-
Wo befindet sich dieser source? Ich gehe mal davon aus, das in nem cpp file der lib befindet. Bei der compilierung der lib ist keines der beiden symbole defniert, er macht also nichts ( wär ein #error "LT_LINUX oder LT_WINDOW muss defniert werden" falls keines der beiden definiert ist nicht sinnvoll?).

-
Hallo,
wenn ich die project.lib kompiliere und in Projekteinstellungen->C++->Präprozessordefinitionen LT_WINDOWS angebe, bekomme ich folgende Fehlermeldung:
//... #ifdef LT_LINUX t_sSlash.assign("/"); #elif LT_WINDOWS t_sSlash.assign("\"); // error C2001: Zeilenumbruch innerhalb einer Konstanten #endif string::size_type t_sLast = a_sPath.find_last_of(t_sSlash.c_str()); // error C2143: Syntaxfehler : Fehlendes ')' vor 'tag::id' if(t_sLast != string::npos){ // error C2065: 't_sLast' : nichtdeklarierter Bezeichner return(a_sPath.substr(t_sLast+1)); } else return(a_sPath.c_str()); //...
-
Hallo,
Vorsicht vor "Escape-Sequenzen", kann man da nur sagen:
[cpp]
#ifdef LT_LINUX
t_sSlash.assign("/");
#elif LT_WINDOWS
t_sSlash.assign("\");
[/cpp]MfG
-
Danke!
-
Danke!