В моем приложении я пытался получить имя файла из некоторого каталога, и я указал расширение для получения имен.
код:
void OsInterface::getFileNames(TCHAR* dir_name, TCHAR* extension, std::vector<std::wstring>* file_names)
{
HANDLE hFind;
WIN32_FIND_DATA win32fd;//defined at Windwos.h
TCHAR* t = wcscat(dir_name, _T("\\*."));
TCHAR* search_name = wcscat(t, extension);
hFind = FindFirstFile(search_name , &win32fd);
if (hFind == INVALID_HANDLE_VALUE) {
throw std::runtime_error("file not found");
}
do {
if (win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
}
else {
file_names->push_back(win32fd.cFileName);
}
} while (FindNextFile(hFind, &win32fd));
FindClose(hFind);
}
Я получил unhandled exception
в win32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY
которые зависят от KernelBase.dll
У вас есть какие-либо идеи для решения этой проблемы?
Моя среда
- Окно 10
- Visual Studio Community 2017
Спасибо.