когда GetFullPathName () вызывается в моей функции-члене класса файлового менеджера, который я собираю, он сбрасывает ранее объявленные переменные int в функции-члене в 0 и, по-видимому, поворачивает переменную-член int, которую я должен был попытаться получитьвокруг этого до случайного мусора.
Вот первая часть функции-члена до момента возникновения проблемы:
std::vector<std::wstring> FileManager::FindFiles()
{
WIN32_FIND_DATA tempStorage;
int filesFound = 0;
int filesFound3 = 0;
std::wstring file;
//std::wstring path;
wchar_t path[4096] = TEXT("");
std::vector<std::wstring> foundFiles;
//wchar_t *output;
if((fileHandle = FindFirstFile(TEXT("*.*"), &locatedData)) == INVALID_HANDLE_VALUE)
{
throw Exception(GetLastError(),5);
}
else
{
filesFound3++;
filesFound++;
filesFound2++;
foundFiles.resize(filesFound);
std::wstring temp = locatedData.cFileName;
//tempStorage = locatedData;
GetFullPathName(temp.c_str(), sizeof(path),path,NULL);
После вызова этой функции, filesFound
и filesFound3
установлены на 0
независимо от того, какие значения они содержали ранее, а filesFound2
это просто мусор.Причина, по которой у меня есть все эти filesFound
переменные, заключается в том, что я пытался понять, что происходит.
У меня нет объяснения, почему это происходит, именно поэтому я публикую здесь.Я искал как в MSDN, так и в Google, но ничего не смог найти.
Любые вопросы по этому вопросу будут высоко оценены.