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.


Anmelden zum Antworten