CfileDialog Problem
-
Hallo,
hab mal ne Frage und zwar hab ich einen FileDialog mit Multiselect.
Nun ist es so dass unter Umständen sehr,sehr viele Dateien auf einmal ausgewählt werden können.
Nun müsste ich einen sehr grossen Puffer anlegen[code] TCHAR newString[65536]; newString[0] = 0; CFileDialog dlg(TRUE, "*.bmp", "Filename.bmp",OFN_ALLOWMULTISELECT | OFN_EXPLORER | OFN_OVERWRITEPROMPT,"Bitmap Files (*.bmp)|*.bmp|Image Files (*.bmp;*.jpg)|*.bmp; *.jpg|All Files (*.*)|*.*||" ); dlg.m_ofn.lpstrInitialDir = m_szArchiveRoot; dlg.m_ofn.lpstrTitle = "Select files"; dlg.m_ofn.lpstrFile = newString; dlg.m_ofn.nMaxFile = 65536; int iRet = dlg.DoModal(); [/code]
Gibt es hier ne Möglichkeit den Pufferbedarf (newString) dynamisch anzulegen?
Sprich wenn nur ein paar Files gewählt sind soll auch nur der dafür nötige Speicher reserviert werden.Danke für eure Hilfe....
-
ich glaube(!), dass du den puffer nicht dynamisch anlegen kannst (aber etwas kleiner kann er meiner ansicht nach ruhig sein...). du kannst aber natürlich nach DoModal, wenn du die größe schon kennst, den string kopiern (ich würd ihn einfach einem CString zuweisen) und den puffer wieder freigeben.
-
Hmm....,
naja dann hilfts nix, aber das mit der Zuweisung auf ein CString und dem anschliessenden Löschen ist gar keine schlechte Idee.Danke...