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 stattstd::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?