255개 이상의 파일의 이름을 가져오려고 했는데 그 이상은 에러.
CFileDialog dlg(TRUE, "", NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_EXPLORER | OFN_LONGNAMES | OFN_ALLOWMULTISELECT, szFilter, NULL);
char filename[10000] = {0};
dlg.m_ofn.lpstrFile = filename;
dlg.m_ofn.nMaxFile = 10000-1;
여기서 첫번째 오류 LEESH
좀더 찾아보니.
기본적으로 2048 버퍼 사이즈로 설정이 되어 있기 때문에
보통 20개 글자라고 하면... 2048/20 정도만 올라옴.
그래서, 위와 같이 늘려주었는데, 10,000 사이즈로 버퍼를 잡았으니,
글자수가 40개 이면,,, 250개 정도 파일만 다루게 됨. 따라서,
CFileDialog dlgFile(TRUE);
CString fileName;
const int c_cMaxFiles = 10000;
const int c_cbBuffSize = (c_cMaxFiles * (MAX_PATH + 1)) + 1;
dlgFile.GetOFN().lpstrFile = fileName.GetBuffer(c_cbBuffSize);
dlgFile.GetOFN().nMaxFile = c_cMaxFiles;
이렇게 해줘야 10000개정도 다룰수 있음.
https://social.msdn.microsoft.com/Forums/vstudio/en-US/828d548e-2c9b-460f-8138-339e2d557878/cfiledialog-and-ofnallowmultiselect?forum=vcgeneral