Gl3w编译错误:从'PROC ...到void *'的转换无效

时间:2013-01-01 23:25:00

标签: windows opengl

在我的电脑中设置gl3w:我不知道如何解决2个错误:

由Gl3w脚本构建的具有错误的函数:

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) ===|

1 个答案:

答案 0 :(得分:3)

有些编译器/平台比其他编译器/平台更不挑剔。 C或C ++无法保证将函数指针隐式转换为void*并返回。但是GL3W的代码期望它能够工作;显然,它没有使用更严格的编译器/平台进行测试。

您应该在其上提交错误报告with the GL3W people。当然,它似乎没有积极地工作,但他们可能会解决它。