2013-01-01 82 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

相关问题