我尝试在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
答案 0 :(得分:0)
不确定这是否与您所遇到的问题相同,但我记得在一两天前看到这个问题!:
引用:
您的项目设置有问题。你真的创建了控制台应用程序吗?我认为您已经创建了Win32项目而不是控制台。做这个: 右键单击项目名称 - >属性 - >展开链接器选项卡 - >系统 - >子系统:确保它是控制台(/ SUBSYSTEM:CONSOLE)。 否则,请重新创建项目,但在创建项目时,请确保选择“Win32控制台应用程序”。
看起来你在这里有同样的问题......
答案 1 :(得分:0)
如果我没记错的话,SDL中有一些内容包含了你的main()
函数:在SDL标题中,有一行
#define main some_other_name
然后,在库中的某个位置,有一个main()
实现,调用some_other_name()
。
如果我正确读取了症状,那么您不会静态链接sdl库,因此链接器不会在SDL中看到main()
定义,只会看到您定义的函数some_other_name()
。 / p>