IT SEEMS現在正在工作,感謝。C++參數更改爲垃圾,即使使用常量調用
我的問題是,參數似乎在其中一個功能丟失。
我在Windows 7
好使用代碼::塊和GNU GCC編譯器,我有一個函數,6個GLfloat參數。
void ProMesh::gen_quad_world(GLfloat _w,GLfloat _h,GLfloat _x1,GLfloat _y1,GLfloat _x2,GLfloat _y2);
正如您所看到的,它是ProMesh類的一部分。在ProMesh中有 我有一個初始化函數調用有問題的gen_quad_world函數。
void ProMesh::initialize(GLfloat _w, GLfloat _h,GLfloat _x1,GLfloat _y1,GLfloat _x2,GLfloat _y2)
{
numverts = 18;
numtexcoords = 12;
vert_array = NULL;
tex_array = NULL;
id = glGenLists(1);
gen_quad_world(_w,_h,_x1,_y1,_x2,_y2);
}
正如您所看到的,它只是將參數傳遞給gen_quad_world。
目前爲止還好嗎?
無論_w和_h的值如何,gen_quad_world都會收到愚蠢的長號碼。
實施例: 我CALL
gen_quad_world(1,2,345,4,5,6);
我GET _w:3.7648e-039 _h:7.4044e + 031 _x1:345 _y1:4 _x2:5 _y2:6 gen_quad_world函數。這怎麼可能發生?這很奇怪。另外,當我在調試模式下逐行瀏覽它時,它可以正常工作。
更復雜的是,我有一個幾乎相同的函數稱爲gen_quad_local,它需要相同的參數。如果我用它來代替它,那麼它工作正常。
-------------------------看看gen_quad_world函數,看下面------------- -------
void ProMesh::gen_quad_world(GLfloat _w,GLfloat _h,GLfloat _x1,GLfloat _y1,GLfloat _x2,GLfloat _y2)
{
std::ofstream myfile("gen_quad_world.txt");
myfile<<"_w: "<<_w<<"\n_h: "<<_h<<"\n";
myfile<<"_x1: "<<_x1<<"\n_y1: "<<_y1<<"\n";
myfile<<"_x2: "<<_x2<<"\n_y2: "<<_y2<<"\n";
myfile.close();
glNewList(id,GL_COMPILE);
glBegin(GL_TRIANGLES);
glVertex3f(_w,0,0);
glVertex3f(0,0,0);
glVertex3f(0,_h,0);
glVertex3f(0,_h,0);
glVertex3f(_w,_h,0);
glVertex3f(_w,0,0);
glEnd();
glEndList();
}
你如何調用'initialize'成員函數? – Mahesh 2012-07-17 11:42:05
您能否提供以下兩個函數的實現:請參閱'GLfloat'的構造函數(需要'int'參數)和'operator <<(const GLfloat&)'? – YePhIcK 2012-07-17 11:47:46
這樣的古怪我從實現中期望實現不匹配接口後大量的代碼更改,並會在VS中重建所有後,不知道Code :: blocks是否有類似的「乾淨,然後重建」類型的函數? – acraig5075 2012-07-17 11:53:51