1

在我的计算机中设置 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) ===|
4

1 回答 1

3

一些编译器/平台不如其他编译器/平台那么挑剔。void*C 或 C++ 不能保证函数指针之间隐式转换。但是 GL3W 的代码希望它能够工作;显然,它没有使用更严格的编译器/平台进行测试。

您可能应该向 GL3W 人员提交一份错误报告。诚然,它似乎并没有被积极处理,但他们可能会修复它。

于 2013-01-02T00:05:03.993 回答