TCHAR* Problem - Windows klaut/verschluck Zeichen!



  • Hallo!

    In meinem main.c Programm habe ich eine TCHAR Variable, die einen Pfad enthält:

    TCHAR fname [] = _T ( "C:\\Dokumente und Einstellungen\\User1\\Desktop\\test.txt" );
    

    In einer anderen Datei mit dem Namen test.c gibt es eine Funktion, der die Variable übergeben wird:

    void test ( TCHAR* s )
    {
    	_putts ( s );
    }
    

    Das Problem ist: es wird nur der erste Buchstabe, also das C ausgegeben. 😡

    // Ausgabe:
    C
    

    Kurios daran ist, wenn ich die Funktion void test ( TCHAR s )* in die main.c Datei schreibe, das die Ausgabe dann richtig funktioniert.
    Was mache ich für einen Fehler?



  • TCHAR* n00b schrieb:

    Was mache ich für einen Fehler?

    Vermutlich compilierst du die beiden Dateien mit unterschiedlichen Zeichensatz-Einstellungen.



  • Ich habe in meinem main.c Programm #define _UNICODE geschrieben.
    Sonst wüsste ich nicht, was ich einstellen muss. 😕



  • TCHAR* n00b schrieb:

    Ich habe in meinem main.c Programm #define _UNICODE geschrieben.

    ...und in test.c hast du das nicht getan. Das ist das Problem.



  • MFK schrieb:

    TCHAR* n00b schrieb:

    Ich habe in meinem main.c Programm #define _UNICODE geschrieben.

    ...und in test.c hast du das nicht getan. Das ist das Problem.

    Stimmt. Das habe ich nachträglich eingegeben, aber das Problem bleibt leider bestehen.



  • Kommando zurück!

    Ich musste in der test.c #define _UNICODE über die #include <TCHAR.H> schreiben,
    jetzt funktioniert es.
    Vielen Dank!



  • gib lieber dem Compiler (oder Präprozesser, je nachdem wie deine Toolchain aussieht) die Anweisung, Makros wie DEBUG / _DEBUG und UNICODE / _UNICODE Projektglobal zu definieren.



  • Ist irgendwie sinnvoll.
    Macht man das unter Projekteinstellungen, Reiter C/C++, Texteingabefeld Präprozessor-Definitionen ?



  • Hallo,

    Macht man das unter Projekteinstellungen, Reiter C/C++, Texteingabefeld Präprozessor-Definitionen ?

    Genau so ist es...

    MfG,

    Probe-Nutzer



  • Probe-Nutzer schrieb:

    Hallo,

    Macht man das unter Projekteinstellungen, Reiter C/C++, Texteingabefeld Präprozessor-Definitionen ?

    Genau so ist es...

    MfG,

    Probe-Nutzer

    Vielen Dank für die Info!

    Und überhaupt ist es ganz doll toll, das man in diesem Forum immer wieder kompetente Hilfe bekommt! 👍 🙂 *freu*


Log in to reply