我使用 SDL 编写了一个简单的应用程序,它在 Windows 8(64 位)上显示一个简单的窗口。我第一次使用 Win32 配置(默认配置)编译并执行了我的代码,程序运行良好。现在我想进行相同的执行,但这次使用 x64 配置。因此,我在项目属性中使用“配置管理器”配置了 Visual,并在链接器中选择 x64 库更改了我的 SDL.lib 和 SDLmain.lib。项目编译正常,但执行失败,说明应用程序无法正常启动。这是消息的屏幕(每次执行时内存地址始终相同):
还有我的 C++ 代码:
#include <iostream>
#include <SDL/SDL.h>
#include <GL/glew.h>
#include <GL/glu.h>
#define WIDTH 500
#define HEIGHT 500
static float angle = 0.0f;
static void eventListener(SDL_Event *pEvent, bool *pContinue)
{
while (SDL_PollEvent(pEvent))
{
switch(pEvent->type)
{
case SDL_QUIT:
*pContinue = false;
break;
case SDL_KEYDOWN:
switch (pEvent->key.keysym.sym)
{
case SDLK_ESCAPE:
*pContinue = false;
break;
}
break;
}
}
}
#undef main
int main(void)
{
SDL_Event myEvent;
bool isAlive = true;
SDL_Init(SDL_INIT_VIDEO);
SDL_WM_SetCaption("Simple SDL window", NULL);
SDL_SetVideoMode(WIDTH, HEIGHT, 32, SDL_OPENGL);
while (isAlive == true)
{
eventListener(&myEvent, &isAlive);
}
SDL_Quit();
return (0);
}
我不明白这条不准确的信息。但是,链接到我的项目的 x64 SDL 库似乎是正确的,因为编译正常。所以我想知道这里发生了什么。有没有人遇到过同样的问题?