TinTin Geschrieben 7. Dezember 2004 Geschrieben 7. Dezember 2004 Hallo erstmal, ich habe nach langer zeit wieder eimal ein problem mit 'SHBrowseForFolder' und 'BIF_NEWDIALOGSTYLE'. Das ist mein Code: #include "stdafx.h" #include "BrowseForFolder.h" #include "BrowseForFolderDlg.h" #include <shlobj.h> #include <ole2.h> #include <objbase.h> . . . void CBrowseForFolderDlg::OnBrowse() { char szBuffer[MAX_PATH]; CString csDir, csLable; CoInitialize(NULL); BROWSEINFO Bif; LPITEMIDLIST lpList; ZeroMemory(&Bif,sizeof(Bif)); Bif.lpszTitle = _T("text"); Bif.ulFlags = BIF_NEWDIALOGSTYLE; lpList = SHBrowseForFolder(&Bif); if (lpList != NULL) { SHGetPathFromIDList(lpList,szBuffer); if (szBuffer[0] == '\0') GetCurrentDirectory(sizeof(szBuffer),szBuffer); } else { GetCurrentDirectory(sizeof(szBuffer),szBuffer); } } und das der Fehler: : error C2065: 'BIF_NEWDIALOGSTYLE' : nichtdeklarierter Bezeichner Wenn ich die Zeile Bif.ulFlags = BIF_NEWDIALOGSTYLE; rausnehme funktioniert es. BIF_NEWDIALOGSTYLE soll erst ab vers. 5.0 der shell32.dll unterstützt werden. BIF_NEWDIALOGSTYLE Version 5.0. Use the new user interface. Setting this flag provides the user with a larger dialog box that can be resized. The dialog box has several new capabilities including: drag-and-drop capability within the dialog box, reordering, shortcut menus, new folders, delete, and other shortcut menu commands. To use this flag, you must call OleInitialize or CoInitialize before calling ich arbeite mit VC++ 6.0 unter win 2000 mit sp4. Version shell32.dll: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/versions.asp also sollte das passen. und die Initialisierung hab ich auch gemacht. wo liegt mein problem??? Zitieren
Klotzkopp Geschrieben 7. Dezember 2004 Geschrieben 7. Dezember 2004 Hast du das aktuelle Platform SDK installiert und die include-Pfade entsprechend gesetzt? Zitieren
Goos Geschrieben 7. Dezember 2004 Geschrieben 7. Dezember 2004 Wahrscheinlich kein aktuelles SDK. Das entsprechende Define sollte sonst in der ShlObj.h sein. (In der Not einfach mal dort nachschaun ) Goos Zitieren
TinTin Geschrieben 7. Dezember 2004 Autor Geschrieben 7. Dezember 2004 treffer ... versenkt. ich habe zwar alle möglichen SDKs auf den Rechner aber das Plattform SDK nicht. Hab den Code auf einem recner mit Plattform SDK ertellen lassen und, was soll ich sagen, es geht. Das SDK ist auch riesig gross, installiert über 500MB. Muss ich für das obige Problem alles installieren?ich denke nicht. Die Frage ist, was brauche ich davon? Ciao TinTin Zitieren
Klotzkopp Geschrieben 7. Dezember 2004 Geschrieben 7. Dezember 2004 Das Core SDK sollte IIRC reichen. Installier das erst mal, dann schau nach, ob die shlobj.h dabei ist. Zitieren
TinTin Geschrieben 7. Dezember 2004 Autor Geschrieben 7. Dezember 2004 ok, installiert habe ich. die 'shlobj.h' ist auch dabei. was muss ich denn an den bei den includes und libs andern. wenn ich das neue include verzeichnis hinzufüge kommt immer noch der gleich fehler. nehme ich das alte include verzeichnis raus kommen neue fehler. z.b. kann afxres.h nicht finden TinTin Zitieren
TinTin Geschrieben 7. Dezember 2004 Autor Geschrieben 7. Dezember 2004 OK, alles klar! Ich hab die Reihenfolge der Includes und der Libs geändert. Zuerst die des SDKs und dann die alten. Jetzt funktioniert es. Danke für die Hilfe. C:\Programme\Microsoft SDK\include C:\PROGRAMME\MICROSOFT VISUAL STUDIO\VC98\INCLUDE C:\PROGRAMME\MICROSOFT VISUAL STUDIO\VC98\MFC\INCLUDE C:\PROGRAMME\MICROSOFT VISUAL STUDIO\VC98\ATL\INCLUDE Ciao TinTin Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.