1

私は現在、ゲーム開発コースの最終的なプログラミング プロジェクトに取り組んでおり、プログラムの 3D レンダリング側に C++ と OpenGL を使用することにしました (経験はほとんどありませんが)。

私は今まで深刻なエラーもなく完全に問題なく作業していましたが、数日間放置しました。しかし、私が戻ったとき、私が使用したいくつかのGLfloat変数でさまざまな「C4430 - Missing Type Specifier」エラーが発生し始めました。

これは私の以前の定義で、今日リロードするまで問題なく機能していました。

    #include <gl/glew.h>
    #include <gl/glut.h>

    ... Other variable and object definitions

    const GLfloat DEFAULT_X = -5.0f;  //C4430: missing type specifyer on all 3 lines and
    const Glfloat DEFAULT_Y = -4.0f;  //C2146: syntax error : missing ';' before identifier 'DEFAULT_Y' on this line only
    const GLfloat DEFAULT_Z = -20.0f;

    GLfloat viewX = DEFAULT_X; //This line is fine
    GLfloat viewY = DEFALUT_Y; //Resulting C2065: Undeclared identifyer
    GLfloat viewZ = DEFALUT_Z; //on both these lines

これを修正するために、#includes を変更し始めました (おそらく、ばかげたアプローチですが、この時点ではかなり混乱していました)。一部の人が示唆しているように、Windows.h と gl/GL.h を追加すると、他のすべてが修正されることがわかりました。問題の1つ。

    #include <Windows.h>
    #include <gl/GL.h>
    #include <gl/glew.h>
    #include <gl/glut.h>

新しい問題は、gl/glew.h の前に gl/GL.h を使用しようとすると、"C1189: glew.h の前に gl.h が含まれている" というエラーがスローされることです。ただし、変更を加えると、以前の型指定エラーが返されます。

glew が GL.h をインクルードしていた場合、これらの型指定子もインクルードされていないのでしょうか。当面はテストせずにメソッドのコーディングを続けますが、すぐにテストできるようにする必要があります。誰でも助けや提案を提供できますか?

4

1 に答える 1