Алексей1153, с подобными глюками не встречался, но очень похоже, что ты что-то все таки не инициализируешь правильно, иначе бы летело и в дебаге и в релизе.
У меня например следующий код работает, на всех операционках без проблем
CFileDialog Dlg(true);
CString Title("Загрузка спектров"), Filter("Файлы спектров (*.spc)"), FileName;
Filter += '\0';
Filter += "*.spc";
Filter += '\0';
Filter += "Все файлы (*.*)";
Filter += '\0';
Filter += "*.*";
Filter += '\0';
Dlg.m_ofn.lpstrFilter = Filter;
Dlg.m_ofn.lpstrTitle = Title;
Dlg.m_ofn.Flags &= ~OFN_EXPLORER;
if (Dlg.DoModal() == IDOK)
{
Если нужен поиск файлов на диске, то пользоваться надо другими функциями - FindFirstFile и FindNextFile
...
CString csCurrent;
WIN32_FIND_DATA FindFileData;
HANDLE hFile;
...
SetCurrentDirectory("D:\\Work\\");
hFile = FindFirstFile("*.*", &FindFileData);
if (hFile != INVALID_HANDLE_VALUE)
{
do
{
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
csCurrent = FindFileData.cFileName;
if (csCurrent != "." && csCurrent != "..")
{
...
}
}
} while (FindNextFile(hFile, &FindFileData));
...
}