Linker Fehler bei Funktion IShellFolder::GetDisplayNameOf
-
Hallo
ich habe folgenden Code, der zwar übersetzt wird, den der Linker aber nicht auflöst, obwohl die shell32.lib in einem der angegebenen Lib-Pfade der BDS 2006 IDE angegeben ist. Weiß jemand wo das Problem liegt?
#include <commdlg.h> #include <shlobj.h> #include <shobjidl.h> ... LPITEMIDLIST pidl; BROWSEINFO BI; IShellFolder *pshf; memset (&BI, 0, sizeof(BROWSEINFO)); BI.hwndOwner = hWnd; BI.pszDisplayName = dir; BI.lpszTitle = tcap; BI.ulFlags = BIF_NEWDIALOGSTYLE; pidl = SHBrowseForFolder(&BI); SHGetDesktopFolder(&pshf); pshf->IShellFolder::GetDisplayNameOf(pidl, SHGDN_NORMAL, &SR); pshf->Release();[Linker Fehler] Error: Ungelöste externe '__stdcall IShellFolder::GetDisplayNameOf(const _ITEMIDLIST *, unsigned long, _STRRET *)' referenziert von ....
-
Hast du die lib auch über Projekt->Dem Projekt hinzufügen... eingefügt?
-
Ja, aber ich hab den Fehler inzwischen gefunden, verstehe aber nicht warum der Compiler nicht meckert. Die vorletzte Anweisung muß heißen:
pshf->GetDisplayNameOf(pidl, SHGDN_NORMAL, &SR);
weil pshf ja schon ein IShellFolder-Pointer ist.