Funktionsname wird automatisch erweitert



  • Hallo

    ich hab in der stdafx.h die Funktion IntToString() deklariert und in der stdafx.cpp implementiert.

    in der datei LogItem.cpp befindet sich folgender Code

    erg.Append(TEXT( IntToString(this->tag) + "." + IntToString(this->monat) + "." + IntToString(this->jahr) + " "));
    erg.Append(TEXT( IntToString(this->stunde) + ":" + IntToString(this->minute) + ":" + IntToString(this->sekunde)));
    

    Ich krieg jetzt den Compiler fehler Bezeichner "LIntToString" nicht gefunden .

    Was soll das? ich hab den Bezeichner doch garnicht verwendet und die richtige Funktion ist vorhanden.

    edit: ups meinte stdafx.h und stdafx.cpp



  • walljumper schrieb:

    ich hab in der afx.h die Funktion IntToString() deklariert und in der afx.cpp implementiert.

    Du hast in den "Systemdateien" rumgeändert? 😮
    Mach das mal ganz schnell wieder rückgängig, sowas funktioniert nicht.



  • oO meinte natürlich stdafx.h und stdafx.cpp.
    habs geändert.



  • Das TEXT-Makro kannst du auch so nicht einsetzen - das funktioniert nur mit String-Literalen. Das heißt, du müsstest jedes der String-Literale "." und ":" in ein eigenes TEXT() einschließen.

    (oder du schaust dir mal CString::Format() an)

    Zur Erklärung:
    TEXT ist definiert als

    #ifdef UNICODE
      #define TEXT(x) L##x
    #else
      #define TEXT(x) x
    #endif
    

    Angewendet auf dein Beispiel ergibt das:

    TEXT( IntToString(this->tag) + "." + IntToString(this->monat) + "." + IntToString(this->jahr) + " ")
    // ->
    LIntToString(this->tag) + "." + IntToString(this->monat) + "." + IntToString(this->jahr) + " "
    

    Und da hast du die unbekannte Funktion, über die dein Compiler gestolpert ist.



  • ok danke

    hmm ich komm mir mit der mfc wieder wie ein totaler anfänger vor 😞


Anmelden zum Antworten