Probleme mit aktueller Pfadangabe



  • hier ein code zum auslesen des aktuellen ordners des programms:

    char buf	[MAX_PATH+2];
    GetModuleFileName(NULL,(LPWCH)buf,MAX_PATH);
    std::stringstream folder;
    folder << buf;
    

    aber warum ist in 'folder' nur der erste buchstabe von buf, also ein einfaches C fuers aktuelle laufwerk?

    DANKE!
    STICK.



  • LPWCH ist ein Zeiger auf wchar_t (UNICODE-Zeichen), den solltest du nicht mit normalen char's mischen (erstens sind wchar_t's größer als char, so daß der GetModuleFileName-Aufruf zu Speicherproblemem führen könnte, und zweitens werden die höherwertigen Bits der umgewandelten char-Werte mit 0 aufgefüllt, was bei der Rückinterpretation als char* als Stringende gilt).

    Entweder du stellst dein Projekt um auf ANSI-Modus (dann entfällt der Cast nach LPWCH) oder du verwendest wchar_t (bzw. TCHAR) und wstringstream anstelle von char und stringstream.



  • danke schoen.

    koenntest du mir bitte noch sagen, wo die projektumstellung in ANSI vorgenommen werden muss?

    (Properties->General->Character Set?)

    DANKE.



  • okay, habe den passenden link doch noch gefunden:
    http://www.thescripts.com/forum/thread458533.html


Anmelden zum Antworten