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

一部のコンパイラ/プラットフォームは、他のものよりもうるさいです。C または C++ では、関数ポインターとの間の暗黙的な変換void*が可能であるとは限りません。しかし、GL3W のコードはそれが機能することを期待しています。明らかに、より厳密なコンパイラ/プラットフォームではテストされていません。

おそらく、GL3W の担当者にバグ レポートを提出する必要があります。確かに、積極的に取り組んでいるようには見えませんが、修正される可能性があります。

于 2013-01-02T00:05:03.993 に答える