von Char nach lpctstr



  • ich habe zwei Variablen eine enthält den Pfad und eine den dateinamen...

    char mainpath[50];
    char name[10];
    mainpath="c:\test\";
    name="bsp.dat"
    

    brauche aber den gesamten pfad als LPCTSTR
    sprich:

    LPCTSTR DatName = "c:\test\bsp.dat"
    

    wie komm ich von dem einem zum anderen.. bin für jedes codeschnipsel dankbar



  • Das ist ein Winapi-Problem, C++ hat kein LPCTSTR.

    Was mir aber auffällt: Die Backslashes in den Strings müssen doppelt, sonst werden das für den Compiler Escape-Sequenzen: "c:\\test\". Ausserdem kann man Arrays nichts zuweisen. Naja.



  • Wenn du schon im C++-Forum bist, nimm doch:

    std::string mainpath, name;
    mainpath = "C:/Test/";
    name="bsp.dat";
    ...
    LPCTSTR full_name = (main_path + name).c_str();
    

    Du kannst btw entweder doppelte Backslashes oder einfache normale Slashes nehmen. Die Win32-API versteht normalerweise beides.



  • die WinAPI sieht aber von dem doppelten Backslash nur mehr einen. Hast du vielleicht eh gemeint.
    Aber du solltest statt

    std::string mainpath, name; 
    mainpath = "C:/Test/"; 
    name="bsp.dat";
    

    lieber gleich

    std::string mainpath("C:/Test/"), name("bsp.dat");
    

    nehmen



  • bei

    std::string mainpath, ininame;
    

    nörgelt er wie folgt:

    error C2040: 'mainpath' : 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' unterscheidet sich von 'char [50]' in bezug auf die Anzahl vorgenommener Dereferenzierungen

    d.h. die zuweisung des char inhaltes an einen String hat immer noch net gefunzt..



  • ?
    Wobei kommt die Fehlermeldung denn? Die Strings sollten die char-Arrays komplett ersetzen, woher kommt dann noch der char[50] in der Meldung?


Anmelden zum Antworten