У меня есть строковый массив
string name[1000];
и с
int counter;
counter = 0;
while(FindNextFile(fHandle, &wf))
{
... //some more code which is checking if its a folder
string theName = wf.cFileName;
if(theName.find(".bmp") != std::string::npos)
{
name[counter] = theName;
counter++;
}
}
Я добавляю каждый файл .bmp в массив имен.
Использование Учебное пособие NeHe Я добавляю текстуры в свои кубы, что работает очень хорошо.
Теперь мой настроенный код выглядит так:
int n; string imageFileString[1000]; char *imageFile[1000];
for(n=0; n<1000; n++)
{
imageFileString[n] = name[n];
imageFile[n] = new char[imageFileString[n].length()];
strcpy(imageFile[n], imageFileString[n].c_str());
if(TextureImage[n] = loadBMP(imageFile[n]))
{
... // Some more Functions to set textures
}
}
Все работает хорошо, только файлы BMP не загружены.
Если я добавлю
name[0] = "pic1.bmp";
name[1] = "pic2.bmp";
name[2] = "pic2.bmp";
name[3] = "pic2.bmp";
перед установкой int n; string imageFileString...
, поэтому для цикла for(...)
мои картинки загружаются без каких-либо изменений. Мое первое мнение заключалось в том, что массив имен не имеет записей, но я создал файл журнала с выводом
name[0] << endl << name[1] << endl << name[2] ...
и в моем лог-файле были одинаковые имена
pic1.bmp
pic2.bmp
pic3.bmp
так что я думаю, что есть какая-то другая ошибка при добавлении cFileName в мой массив.
Может кто-нибудь помочь мне, пожалуйста? Я не знаю, как это исправить, я имею в виду, я понятия не имею, что случилось ...