system folder beispiel aus der psdk: mehrfachdeklarationen



  • hola leute

    hab aus der psdk ein beispiel 1:1 uebernommen und ich hab da n kleines problem.

    der source:

    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
        LPMALLOC pMalloc = NULL;
        IShellFolder *psfParent = NULL;
        LPITEMIDLIST pidlSystem = NULL;
        LPCITEMIDLIST pidlRelative = NULL;
        STRRET strDispName;
        TCHAR szDisplayName[MAX_PATH];
        HRESULT hr;
    
        hr = SHGetMalloc(&pMalloc);
    
        hr = SHGetFolderLocation(NULL, CSIDL_SYSTEM, NULL, NULL, &pidlSystem);
    
        hr = SHBindToParent(pidlSystem, IID_IShellFolder, (void **) &psfParent, &pidlRelative);
    
        if(SUCCEEDED(hr))
        {
            hr = psfParent->GetDisplayNameOf(pidlRelative, SHGDN_NORMAL, &strDispName);
            hr = StrRetToBuf(&strDispName, pidlSystem, szDisplayName, sizeof(szDisplayName));
            //cout << "SHGDN_NORMAL - " <<szDisplayName << '\n';
            info->Lines->Add(AnsiString("SHGDN_NORMAL - ") + AnsiString(szDisplayName));
        }
    
        psfParent->Release();
        pMalloc->Free(pidlSystem);
        pMalloc->Release();
    }
    

    Fehlermeldung:
    [C++ Fehler] shobjidl.h(2194): E2238 Bezeichner 'FOLDERSETTINGS' mehrfach deklariert
    [C++ Fehler] shobjidl.h(8097): E2238 Bezeichner 'DESKBANDINFO' mehrfach deklariert
    [C++ Fehler] shlobj.h(1422): E2238 Bezeichner 'FVSHOWINFO' mehrfach deklariert
    [C++ Fehler] shlobj.h(3457): E2238 Bezeichner 'SHELLFLAGSTATE' mehrfach deklariert

    das beispiel hab ich von -> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_basics/shell_basics_programming/folder_info.asp

    jemand ne idee oder auch schon mal das problem gehabt ?

    Meep Meep



  • steht doch da. du hast zu viele header inkludiert die das selbe definieren. sprich überprüf mal deine header und inkludes.

    @offtopic
    blöde frage gibt es ne psdk für das borland ding?



  • hoi miller_m

    jo die psdk is beim bcb includiert.

    headerfiles hab ich nur die beiden im beispiel angegebenen includiert.

    #include <Classes.hpp>   // VCL
    #include <Controls.hpp>  // VCL
    #include <StdCtrls.hpp>  // VCL
    #include <Forms.hpp>     // VCL
    
    #include <shlobj.h>
    #include <shlwapi.h> // <- die beiden nur
    

    koennte mal jemand der nen bcb6er hat mal die beiden files einbinden und testen ob er den gleichen fehler bekommt ? irgendwie befuerchte ich, das das ein problem vom bcb ist.

    Meep Meep



  • problem geloest. falls es jemand interessieren sollt:

    vor dem includieren der vcl.h muss man

    #define NO_WIN32_LEAN_AND_MEAN
    

    einfuegen.

    Meep Meep


Anmelden zum Antworten