|
임승균.조로 님이 쓰신 글 :
: 안녕하세요
:
: 빌더 업데이트 받으시고요...업데이트 하고 나면 readme.txt가 있는데
: 잘 읽어보면 님과 같은 에러에 대한 해결방법이 나옵니다.
: 제가 간략하게 쓰면...
:
: 프로젝트옵션에서
: conditional defines에 이거 추가 해줘요~~
: NO_WIN32_LEAN_AND_MEAN
:
: 그럼 즐거운 하루되세요~~
:
:
: 악동 님이 쓰신 글 :
: : 제가 사용하려는 함수는 SHGetPathFromIDList(...) 입니다.
: : directory 선택하는 Dialog를 제공해 주는 함수이지요.
: : 이 함수를 사용하기 위해 #include <shlobj.h> 했는데요.
: :
: : [C++ Error] shlobj.h(1762): E2238 Multiple declaration for 'FVSHOWINFO'
: : [C++ Error] shlobj.h(1936): E2238 Multiple declaration for 'FOLDERSETTINGS'
: : [C++ Error] shlobj.h(3717): E2238 Multiple declaration for 'DESKBANDINFO'
: : [C++ Error] shlobj.h(4808): E2238 Multiple declaration for 'SHELLFLAGSTATE'
: :
: : 이런 에러가 여러개 납니다.
: : 어떻게 사용해야 하는 건지.
: : 빌더에서 sdk를 사용하는 방법이 잘못 된건지요?
: :
: : 답변 부탁드릴께요.
: :
: :
: : 참고로 제가 작성한 코드는 아래와 같구요 VC++에서는 문제가 없던 코드랍니다.
: : ###########################################################################
: : String TSetupFrm::GetPathName(void)
: : {
: :
: : LPMALLOC g_pMalloc;
: : ITEMIDLIST *Pidl, *BrowsePidl;
: : char DisplayName[MAX_PATH];
: : BROWSEINFO BrowseInfo;
: : String sPathName="";
: :
: : // IMalloc인터페이스의 포인터를 가져온다.
: : SHGetMalloc(&g_pMalloc);
: :
: : // 스페셜폴더의 위치를 피들로 리턴해주는 함수입니다.
: : SHGetSpecialFolderLocation(this->Handle , CSIDL_DESKTOP , &Pidl);
: :
: :
: : // BROWSEINFO 구조체의 내용을 채웁니다.
: : BrowseInfo.hwndOwner = this->Handle;
: : BrowseInfo.pidlRoot = Pidl;
: : BrowseInfo.pszDisplayName = DisplayName;
: : BrowseInfo.lpszTitle = "Data가 저장될 장소를 선택하십시오.";
: : BrowseInfo.lpfn = NULL;
: : BrowseInfo.ulFlags = BIF_RETURNONLYFSDIRS | BIF_RETURNFSANCESTORS ;
: :
: : // 채워진 구조체로 SHBrowseForFolder를 호출합니다.
: : if( (BrowsePidl=SHBrowseForFolder(&BrowseInfo))!=NULL )
: : {
: : if( SHGetPathFromIDList(BrowsePidl, DisplayName)!=FALSE )
: : sPathName= BrowseInfo.pszDisplayName;
: : else
: : Application->MessageBox("That is not a part of file system", "error", MB_OK);
: : }
: :
: : // 사용한 피들들을 해제한다.
: : g_pMalloc->Free(Pidl);
: : g_pMalloc->Free(BrowsePidl);
: :
: : // IMalloc인터페이스를 놓아준다.
: : g_pMalloc->Release();
: :
: : return sPathName;
: :
: : }
|