[問題] glutDisplayFunc的錯誤訊息...

看板C_and_CPP (C/C++)作者 (viable)時間12年前 (2013/12/08 09:50), 編輯推噓4(4022)
留言26則, 5人參與, 最新討論串1/1
我又跑來問問題了 是這樣的 我用VC++用到OpenGL 要display時 用到這一行: glutDisplayFunc(display); 然而error message很無情的給了我一個錯誤訊息: 'glutDisplayFunc' : cannot convert parameter 1 from 'void (void)' to 'void (__cdecl *)(void)' 由於沒google出答案 一時不知道該怎麼辦 這個錯誤訊息是什麼意思. 該怎麼解決才好 謝謝'' -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.175.220.175

12/08 10:56, , 1F
應該是要丟函數的pointer給glut才對吧?
12/08 10:56, 1F

12/08 11:08, , 2F
啊啊不好意思,剛睡醒,樓上那個回應就請無視吧,抱歉
12/08 11:08, 2F

12/08 12:08, , 3F
(尷尬的笑)^^"
12/08 12:08, 3F

12/08 12:43, , 4F
display加上__cdecl試試?
12/08 12:43, 4F
我加了 但是一樣QQ

12/08 12:47, , 5F
你 display 怎麼定義的?
12/08 12:47, 5F
現在是這個樣子" void __cdecl display(void) { FILE *fp; float x,y,z,rel; int i,ret,nl,r,g,b; glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // set perspective glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective( 45.0, 1, 10.0, 1000.0 ); // set view glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(250100.0, 2741500.0, 500.0, 250200.0, 2741200.0, 0.0, 0.0, 1.0, 0.0); //glPointSize(4.0); glEnable(GL_SMOOTH); fp = fopen("/media/Transcend/version2e.txt","r");//~~~~input file glBegin(GL_POINTS); for(i=0;;i++) { ret = fscanf(fp, "%d %f %f %f %f %d %d %d\n", &nl, &x, &y, &z, &rel, &r, &g, &b); //printf("got %d args %d %f %f %f %f %d %d %d\n", ret, nl, x, y, z, rel, r, g, b); if(feof(fp)) break; glColor3b (r-128, g-128, b-128); glVertex3f (x, y, z); }; glEnd(); printf("got %d points\n", i); fclose(fp); glFlush ();// start processing buffered OpenGL routines } ※ 編輯: viable 來自: 1.175.228.123 (12/08 13:17)

12/08 13:49, , 6F
可以把整個code用至底的網站貼出來嗎?
12/08 13:49, 6F

12/08 13:51, , 7F
整個code 0.0(眨.眨.)
12/08 13:51, 7F

12/08 14:05, , 8F
代置有嚴重到這種程度ㄛ
12/08 14:05, 8F

12/08 14:23, , 10F
我這邊的環境是可以編譯成功(gcc4.6.1)
12/08 14:23, 10F

12/08 14:28, , 11F
歐 這是好事 (無力感)
12/08 14:28, 11F

12/08 14:41, , 12F
你是打算用class包裝opengl函式,然後呼叫外部的display?
12/08 14:41, 12F

12/08 14:43, , 13F
本來都包在同一個class,因為想不出方法解決 嘗試擺到外面..
12/08 14:43, 13F

12/08 14:51, , 14F
原本放在class X裡頭和放外面的錯誤訊息是一樣的''
12/08 14:51, 14F

12/08 15:03, , 15F
可以看這篇,有說為什麼不行跟如何解 http://ppt.cc/zj~-
12/08 15:03, 15F

12/08 15:19, , 16F
我個人想不透的是為甚麼放到外面也有訊息@@
12/08 15:19, 16F

12/08 15:21, , 17F
會不會是class裡的忘記拿掉了?
12/08 15:21, 17F

12/08 15:24, , 18F
贊成樓上, 所以我直覺需要他貼 code
12/08 15:24, 18F

12/08 15:37, , 19F
0o0 齁 零Error了 各位請受我一拜!
12/08 15:37, 19F

12/08 15:40, , 20F
我確實class裡沒刪乾淨 大家太強了 //起來就好了
12/08 15:40, 20F

12/08 15:46, , 21F
噢賣尬! 太開心了
12/08 15:46, 21F

12/08 15:49, , 22F
謝謝大家
12/08 15:49, 22F

12/08 19:51, , 23F
不過我很好奇,這種寫法不就每一幀都會開一次檔案?
12/08 19:51, 23F

12/08 19:52, , 24F
另外,這是網路上的教學嗎?如果是正在學的話,最好不要
12/08 19:52, 24F

12/08 19:53, , 25F
從immediate mode開始。
12/08 19:53, 25F

12/08 19:54, , 26F
頂點的部分最好用buffer存起來會比較好。
12/08 19:54, 26F
文章代碼(AID): #1Iez20SD (C_and_CPP)
文章代碼(AID): #1Iez20SD (C_and_CPP)