Pfad erstellen
-
das habe ich schon probiert aber Visual c++ 2005 express sagt, es würde den Bezeichner nicht kennen
-
Ich weis nich obs bei 2005 express das Selbe ist (Ich benutze MS Visual C++ 6.0).
Aber bei mir geht es so:CreateDirectory("C:\\Test\\", NULL);Als präprozessor: #include "windows.h"
Afaik ist 2005 express (etwas^^) neuer, somit kann man auf abwärtskompatibilität hoffen.
-
damit kann ich aber nur einen Ordner erstellen oder??
mein Anliegen ist es eher sowas "in einem Rutsch" zu erledigen :
C:\Test1\Test2\Test3
-
Guck doch einfach mal in die MSDN...
http://msdn2.microsoft.com/en-us/library/ms647696.aspx
-
habe ich schon doch ich habe nichts hilfreiches gefunden /oder verstanden

ich hab #include <shlobj.h> reingeschrieben, und doch meint der Compiler er würde SHCreateDirectory() nicht kennen
-
Das glaub ich dir nich

(Es sei denn du benutzt Dev C++?!)
Haste auch die entsprechende lib mitgelinkt?
-
was muss ich tun um die lib mitzulinken (und ich bin mir ganz sicher: Visual c++ 2005 express)
-
ich habe dabei rausgefunden: in der Headerdatei steht was von SHCreateDirectory drin also ist das ja da vorhanden und erfolgreich includiert ist sie auch weil ich sie aus dem Visual raus geöffnet habe nur wenn ich auf den Eintrag im Prog-Code rechtsklicke und zur Definition oder Deklaration will findet Visual diese nicht. -> und Fehlermeldung beim Compilieren das dieser Bezeichner nicht gefunden wurde.
-
#pragma comment(lib, "shell32.lib")so linkst du die mit.
-
ändert nichts an der Fehlermeldung
-
Find ich äuserst Mysteriös... oO
Haste das Platform SDK auch richtig installiert?(inklusive konfigurationen)
-
ich hab vorher schon andere Sachen gemacht und die haben alle geklappt
(hab auch schon Beispielprogramme mit DirectX erfolgreich kompiliert) also ich denke das da alles stimmt.
-
Hmm ok dann wirste dir das wohl aus CreateDirectory selbst basteln müssen...
Vllt. weis ein anderer besser bescheid als ich?Ich benutz SHCreateDirectory ohne Probleme...
btw. welches Windows verwendest du denn? SHCreateDirectory geht nur unter Windows XP SP2 wie ich grad gelesen hab.
-
Zeig doch mal ein Minimalbeispiel woe s bei Dir nicht geht!
-
ich benutze win xp Home Sp2
und hier ein Minimalbeispiel:case IDOK: hwndParent = GetParent(hDlg); hwndDlgEdit = GetDlgItem(hDlg,IDEDIT); memset(vok.ORIGPATH, 0, sizeof(TCHAR) * 512); memset(vok.Path, 0, sizeof(TCHAR) * 512); GetWindowText(hwndDlgEdit,vok.Path,512-11); GetWindowText(hwndDlgEdit,vok.ORIGPATH,512-11); SHCreateDirectory(hwndParent,vok.ORIGPATH); iPathlenght = lstrlen(vok.Path); EndDialog(hDlg, 0); return TRUE;(wie gesagt der Compiler mekkert nicht über falsche handels ect. sondern er "findet" die Funktion scheinbar nicht
-
Verwende mal SHCreateDirectoryEx und setze den letzten Parameter auf NULL, sollte das Gleiche ergeben.
-
Vielen Dank das funktioniert eigenartigerweise jetzt hab ich mir die Rumbastelei gespart

-
new be schrieb:
Vielen Dank das funktioniert eigenartigerweise jetzt hab ich mir die Rumbastelei gespart

Jupp, die andere Funktion ist seltsamerweise nicht dabei. Aber das ist doch trotzdem ein akzeptabler Workaround
.