C + +中的事件管理

时间:2013-09-03 10:25:50

标签: c++ sdl

我尝试在C ++中使用事件管理, 我加入了VS中的SDL库,在我的例子中,

这是我的代码:

#include "SDL/SDL.h"

int main(int argc, char *argv[])
{
    SDL_Surface *ecran = NULL;
    SDL_Event event; /* La variable contenant l'événement */
    int continuer = 1; /* Notre booléen pour la boucle */

    SDL_Init(SDL_INIT_VIDEO);

    ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
    SDL_WM_SetCaption("Gestion des événements en SDL", NULL);

    while (continuer) /* TANT QUE la variable ne vaut pas 0 */
    {
        SDL_WaitEvent(&event); /* On attend un événement qu'on récupère dans event */
        switch(event.type) /* On teste le type d'événement */
        {
            case SDL_QUIT: /* Si c'est un événement QUITTER */
                continuer = 0; /* On met le booléen à 0, donc la boucle va s'arrêter */
                break;
        }
    }

    SDL_Quit();

    return EXIT_SUCCESS;
}

代码中没有错误,但编译后我收到错误:

LINK: fatal error LNK1561: entry point must be defined

2 个答案:

答案 0 :(得分:0)

不确定这是否与您所遇到的问题相同,但我记得在一两天前看到这个问题!:

引用:

  

您的项目设置有问题。你真的创建了控制台应用程序吗?我认为您已经创建了Win32项目而不是控制台。做这个:   右键单击项目名称 - >属性 - >展开链接器选项卡 - >系统 - >子系统:确保它是控制台(/ SUBSYSTEM:CONSOLE)。    否则,请重新创建项目,但在创建项目时,请确保选择“Win32控制台应用程序”。

link

看起来你在这里有同样的问题......

答案 1 :(得分:0)

如果我没记错的话,SDL中有一些内容包含了你的main()函数:在SDL标题中,有一行

#define main some_other_name

然后,在库中的某个位置,有一个main()实现,调用some_other_name()

如果我正确读取了症状,那么您不会静态链接sdl库,因此链接器不会在SDL中看到main()定义,只会看到您定义的函数some_other_name()。 / p>