Problem mit PathIsDirectoryEmpty
-
Hallo Leutz,
ich hab eine kleine Funktion geschrieben, die prüfen soll ob ein Verzeichnis leer
ist um dann über einen "if Zweig" andere Sachen zu machen je nachdem wie das Ergebnis der Prüfung ausgefallen ist. Dafür habe ich die Funktion PathIsDirectoryEmpty gefunden, allerdings bekomme ich beim kompilieren
folgende Fehlermeldung:undefined reference to `_imp__PathIsDirectoryEmptyA@4'|
als zusätzlichen Header habe ich shlwapi.h inkludiert.
Meine IDE ist CodeBlocks 13.12
Windows 7 ProfessionalHier meine Funktion:
BOOL WriteToFile() { LPCSTR Ordner = "\\Data"; const BOOL Check = PathIsDirectoryEmpty(Ordner); if(Check == TRUE) { MessageBox(NULL, "1", "2", MB_OK); return TRUE; } else { MessageBox(NULL, "3", "4", MB_OK); return TRUE; } }
Was mache ich falsch? Wäre nett wenn mir jemand behilflich sein könnte,
hab schon die Suche und Google bemüht allerdings mit wenig erfolg.MFG
DeeJayExTasy
-
Du musst gegen die
shlwapi.lib
linken.
Entweder in den Projekteinstellungen angeben oder, wenn du einen Compiler verwendest der Auto-Linking unterstützt (MSVC, Clang) indem du#pragma comment(lib, "shlwapi.lib")
in eines deiner .cpp Files schreibst.
GCC kann es (Auto-Linking) AFAIK immer noch nicht, nichtmal die Windows Ports.
(Falls sich da was getan hat, und das nicht mehr stimmt, bitte korrigiert mich!)
-
Tut mir leid hustbaer, ich hatte das wohl vergessen zu erwähnen, ich habe
die lib selbstverständlich auch gelinkt, so sieht es bei mit im Header aus:#include <shlwapi.h>//PathIsDirectoryEmpty #pragma comment (lib, "shlwapi.lib")
ich bekomme trotz alle dem die Fehlermeldung, weiß auch leider nicht
mehr weiter, muss wohl einen anderen Weg finden um herauszukriegen
ob mein Verzeichniss leer ist.Mfg
DeeJay
-
Passiert dies auch wenn du ein neues Projekt öffnest und es dort versuchst?
Hier evtl. noch eine Lösung wie Du überprüfen kannst ob ein Ordner leer ist:
http://stackoverflow.com/a/1136247
-
@deejayextasy
Dann wird der Grund vermutlich sein dass CodeBlocks GCC verwendet, und dieser#pragma comment(lib)
nicht unterstützt.
=> Bei den Linkeroptionen-lshlwapi
angeben.
-
Vielen Dank für eure Hilfe, tut mir leid das ich mich erst jetzt melde, war
ein paar Tage nicht "da".Ja, es passiert auch wenn ich ein neues Projekt erstelle,
so wie es aussieht hat hustbaer recht und meine IDE kann anscheinend
folgende Zeile nicht richtig interpretieren ->#pragma comment(lib, "shlwapi.lib")
wenn ich die shlwapi direkt linke, über die Projektoptionen, funktioniert es.
Also vielen Dank nochmal für eure mühe, Thema ist damit erledigt.
MFG
DeeJayExTasy