2013-01-01 102 views
1

在我的電腦設置gl3w:2級的錯誤,我不知道如何解決被拋出:這是由Gl3w腳本構建Gl3w編譯錯誤:從無效轉換「PROC ......爲void *」

功能其中有錯誤:

static void *get_proc(const char *proc)    - line 19 
{ 
void *res; 

res = wglGetProcAddress(proc);     - line 23, first error 
if (!res) 
    res = GetProcAddress(libgl, proc);  - line 25, second error 
return res; 
} 

生成錯誤:

||=== LearnOPG, Debug ===| 
C:\CodeBlocks\LearnOPG\gl3w.c||In function 'void* get_proc(const char*)':| 

C:\CodeBlocks\LearnOPG\gl3w.c|23|error: invalid conversion from 'PROC {aka int (__attribute__((__stdcall__)) *)()}' to 'void*' [-fpermissive]| 

C:\CodeBlocks\LearnOPG\gl3w.c|25|error: invalid conversion from 'FARPROC {aka int (__attribute__((__stdcall__)) *)()}' to 'void*' [-fpermissive]| 

||=== Build finished: 2 errors, 0 warnings (0 minutes, 0 seconds) ===| 

回答

3

一些編譯器/平臺比別人少挑剔。 C或C++不保證將函數指針隱式轉換爲void*並返回。但GL3W的代碼預計它能夠工作;顯然,它沒有通過更嚴格的編譯器/平臺進行測試。

你也許應該提交一份關於它的錯誤報告with the GL3W people。當然,它似乎並沒有被積極地處理,但他們可能會解決它。

+0

是的,我試圖將它投到(void *),它似乎工作?我現在還有其他的錯誤需要處理。感謝新的gl3w評論! – GigaBass

+0

另外,如果它不麻煩/你不忙/你不介意,你會提供一些關於如何設置gl3w的詳細說明嗎? – GigaBass

+0

我已經運行腳本,並將gl3w.c,gl3w.h和arbsomething.c直接放到我的項目的源文件中,並在我的main.cpp中包含「gl3w.h」# 。 這是正確的方法嗎? – GigaBass

相關問題