Ich habe ein String-Array bekommtC++ std :: string für die Verwendung mit OpenGL LoadBMP verkohlen
string name[1000];
und mit
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++;
}
}
Ich füge jede BMP-Datei, um meinen Namen Array.
Mit NeHe's Tutorial Ich füge Texturen zu meinen Qubes, die sehr gut funktioniert.
Nun meine angepassten Code sieht wie folgt aus:
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
}
}
Alles funktioniert gut, nur dass meine BMP-Dateien geladen Arent.
Wenn ich
name[0] = "pic1.bmp";
name[1] = "pic2.bmp";
name[2] = "pic2.bmp";
name[3] = "pic2.bmp";
vor der int n; string imageFileString...
Einstellung, fügen Sie so für die for(...)
Schleife sind meine Bilder geladen, ohne etwas anderes zu ändern. Meine erste Meinung war, dass der Name Array keine Einträge vorhanden, aber ich erstellt eine Log-Datei mit dem Ausgang
name[0] << endl << name[1] << endl << name[2] ...
und in meiner Log-Datei waren die gleichen Namen
pic1.bmp
pic2.bmp
pic3.bmp
so denke ich, gibt es einige ist anderer Fehler beim Hinzufügen des cFileName zu meinem Array.
Kann mir bitte jemand helfen? Ich weiß nicht, wie dieses Problem zu beheben, ich meine, ich habe keine Ahnung, was los ist ...
Statt string name [1000] warum nicht Sie std :: vector Namen verwenden ;. Und benutze names.push_back (theName) ;. –
yasouser