1

ユーザーからの入力の状​​態 (マウス/キーボード データ) を保持するシングルトン クラスを作成しようとしています。SDL API はキーボード データを Uint8 ポインター配列として返しますが、Uint8 ポインターを作成しようとすると、uint8 の行で次のエラーが発生します。

error C2143: syntax error : missing ';' before '*'

error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

以前に定義せずに Uint8 をデータ型として使用したことがあるので、ここで何が問題を引き起こしているのかわかりません。これが私のコードです:

class InputState {
public:

    InputState()
    {};
    ~InputState()
    {};


    static InputState *getInputState(void)
    {
        static InputState *state = new InputState();

        return state;
    };

public:
    Uint8 *keys;

    struct MouseState
    {
        int LeftButtonDown;
        int RightButtonDown;
        int MiddleButtonDown;

        int x;
        int y;

        MouseState ()
        {
            LeftButtonDown = 0;
            RightButtonDown = 0;
            MiddleButtonDown = 0;

            x = 0;
            y = 0;
        }
    };

    MouseState *mouseState;
};
4

1 に答える 1

1

タイプは、ヘッダーUint8の 1 つで定義されている typedef です。使用する場合は、ファイルにヘッダーSDLを含める必要があります。SDL.h

// You need this include if you want to use SDL typedefs
#include <SDL.h>

class InputState {
public:

    InputState()
    {};
    ~InputState()
    {};

    // ...

public:
    Uint8 *keys;

    // ...
};
于 2012-06-11T05:14:59.627 に答える