GetOpenFileName трёт память
От: Аноним  
Дата: 23.10.11 02:17
Оценка:
на выходе из DoModal, при выделении нескольких файлов первые 3 символа получаются битыми. первый — какое-то случайное значение, а два остальных — нули.
заходил внутрь думодала — память испорченна уже на выходе из GetOpenFileName
проявляется когда файлов 4 и больше
имена простые, VOICE_xxxx

 CFileDialog odlg(TRUE, _T(""), _T(""), OFN_ALLOWMULTISELECT | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, m_fcomp.getTestOpenFileMask());

  CString fileNames;

  const int c_cMaxFiles = 100;
  vector<TCHAR> buff;
  buff.resize((c_cMaxFiles * (MAX_PATH + 1)) + 1, 0);
  
  odlg.m_ofn.lpstrFile = &buff[0];
  odlg.m_ofn.nMaxFile = c_cMaxFiles;
  
  if (odlg.DoModal() != IDOK)
    return false;

  CString dir(odlg.m_ofn.lpstrFile);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.