Muss es denn C sein? Vielleicht geht ja C++ mit ner String-Klasse? (std::string, CString, ...)
Edit: Schau dir mal
PathCombine und Co an.
Ja leider
bzw.. ist doch C++
Ist ein C++ Sample für meine Lib.
Dann nimm std::string anstelle von char*. Das macht den Schmerz erträglicher.
Code:
char currentDir[MAX_PATH];
char Path[MAX_PATH];
GetCurrentDirectoryA(MAX_PATH, (LPSTR) currentDir);
sprintf(Path, "%s%s", currentDir, "\\SPlugins\\Visual Ball\\Ball.svp");
exec.Pluginfile = Path;
funktioniert..
Aber hier bekomme ich bei currentDir nur das erste zeichen C + den zweiten Pfad
Code:
char currentDir[MAX_PATH];
char Path[MAX_PATH];
GetCurrentDirectory(MAX_PATH, (LPWSTR) currentDir);
sprintf(Path, "%s%s", currentDir, "\\SPlugins\\Visual Ball\\Ball.svp");
exec.Pluginfile = Path;
GetCurrentDirectory ist dann automatisch GetCurrentDirectoryW.
Sieht dann so aus
"
CSPlugins\Visual Ball\Ball.svp"
Warum geht es nicht mit WideChar.
Bin da kein Experte, aber LP
WSTR dürfte Zeiger auf WideChar sein, während char AnsiChar ist. Ich denke, am besten nimmst du entweder durchgängig WCHAR, LPWSTR etc. (also
Unicode) oder durchgängig die Varianten mit T: TCHAR, LPTSTR etc. (die per Compilerschalter zwischen A und W wechseln können).