У меня есть цикл while, целью которого является создание массива, содержащего список доступных DLL.
do{
DLL_List.push_back((char*)FindFileData.cFileName);
cout << "DLL 0 IS" << DLL_List[0];
}
while (FindNextFile(hFind, &FindFileData));
Проблема: значение DLL_List [0] изменяется на каждой итерации (с именем нового найденного DLL файла)! Я вижу это благодаря cout. Зачем? Я думал, что push_back не изменит предыдущее, я ошибаюсь?
Похоже, вы сохраняете указатель на строку, которая изменяется при вызове FindNextFile
(хотя вы забыли указать нам, что именно DLL_List
, поэтому я не могу быть полностью уверен).
Вместо этого сохраните std::string
. Это сохранит копию строки, а не только указатель на нее.
DLL_List
? Что-нибудь еще изменяет это? Каков его тип?