使用我有一个字符串数组C++的std :: string到char与OpenGL的LoadBMP
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's Tutorial我将纹理添加到我的Qubes中,工作得很好。
现在我定制的代码如下所示:
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文件的arent加载。
如果我设置int n; string imageFileString...
,所以对于for(...)
循环是在不改变任何东西装我的照片前添加
name[0] = "pic1.bmp";
name[1] = "pic2.bmp";
name[2] = "pic2.bmp";
name[3] = "pic2.bmp";
。我的第一个观点是,这个名字数组有没有entrys,但我创建了一个日志文件与输出
name[0] << endl << name[1] << endl << name[2] ...
,并在我的日志文件是相同的名称
pic1.bmp
pic2.bmp
pic3.bmp
所以我认为有一些其他错误将cFileName添加到我的数组中。
任何人都可以帮助我吗?我不知道如何解决这个问题,我的意思是我不知道什么是错的...
而不是字符串名称[1000]你为什么不使用std :: vector的名;.并使用names.push_back(theName);. –
yasouser
2011-01-07 21:30:04