0

SDL の最新バージョンを使用しています。enum SDL_WINDOWEVENT が見つからないようです

SDL_Events.h内で、SDL_Eventsの定義は次のとおりです:

/** General event structure */
typedef union SDL_Event {
    Uint8 type;
    SDL_ActiveEvent active;
    SDL_KeyboardEvent key;
    SDL_MouseMotionEvent motion;
    SDL_MouseButtonEvent button;
    SDL_JoyAxisEvent jaxis;
    SDL_JoyBallEvent jball;
    SDL_JoyHatEvent jhat;
    SDL_JoyButtonEvent jbutton;
    SDL_ResizeEvent resize;
    SDL_ExposeEvent expose;
    SDL_QuitEvent quit;
    SDL_UserEvent user;
    SDL_SysWMEvent syswm;
} SDL_Event;

wiki から SDL_WINDOWEVENT があることを知っています

http://wiki.libsdl.org/moin.cgi/SDL_WindowEvent?highlight=%28%5CbCategoryStruct%5Cb%29%7C%28CategoryEvents%29%7C%28SGStructures%29

// ------------------------------------------------ --------------------------------

問題を明確にするために編集

提供されたリンクを見ると、サンプルコードは次のようになります

void PrintEvent(const SDL_Event * event)
{
    if (event->type == SDL_WINDOWEVENT) {
        switch (event->window.event) {
        case SDL_WINDOWEVENT_SHOWN:
            fprintf(stderr, "Window %d shown", event->window.windowID);
            break;
// snip
}

マイコード

    SDL_Event sdlEvent = {0};

    while(SDL_PollEvent(&sdlEvent))
    {
        if(sdlEvent.type == SDL_QUIT)// || isTriggered(SDLK_ESCAPE))
            System::getEventManagerGlobal().broadcastEvent( Event("QUIT") );
        if(sdlEvent.type == SDL_WINDOWEVENT)
        {
            if(sdlEvent.window.event == SDL_WINDOWEVENT_MOVED)
            {
                // snip
            }
        }
    }

error C2065: 'SDL_WINDOWEVENT' : 宣言されていない識別子エラー C2039: 'window' : 'SDL_Event' のメンバーではありません sdl_events.h(227) : 'SDL_Event' の宣言を参照してください エラー C2228: '.event' の左側には class/ が必要です構造体/共用体エラー C2065: 'SDL_WINDOWEVENT_MOVED': 宣言されていない識別子

4

1 に答える 1

0

私が抱えていた問題を見つけました - Joachim と user1202136 が私を手がかりにしました

使用している SDL のバージョンを間違えていたため、メソッドが存在しない理由が説明されています。

于 2012-04-11T16:49:19.580 に答える