【发布时间】:2012-11-06 04:07:09
【问题描述】:
我正在尝试在 Visual Studio Express 2012 for Windows Desktop 中安装 SDL_ttf,并且我有一个可以正常编译的小示例程序,但是当我运行它时,我收到一个错误弹出窗口,提示“应用程序无法正确启动( 0xc000007b)。点击确定关闭应用程序”。
我最初让基本的 SDL 工作,然后我尝试添加 SDL 字体。我已经完成了以下操作,但我仍然遇到问题,如果有人可以帮助我,将不胜感激......
1) 我将所有 .lib 文件夹复制到 Visual Studio lib 文件夹(C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib)(分别是 SDL.lib、SDLMain.lib 和 SDL_ttf。库)
2) 我在项目属性中添加了 SDL 和 SDL_ttf 的包含目录(在项目 >> 属性 >> 配置属性 >> VC++ 目录 >> 包含目录下) ... 这些是 ("...\SDL Main Libraries\SDL-1.2.15\include") 和 ("...\SDL 字体库\SDL_ttf-2.0.11\include")
3) 我添加了 SDL 和 SDL_ttf 的附加依赖项(在项目 >> 属性 >> 配置属性 >> 链接器 >> 输入 >> 附加依赖项下,我在其中放置: SDL.lib SDLMain.lib SDL_ttf.lib 内联 - 它看起来像这样:SDL.lib;SDLMain.lib;SDL_ttf.lib;%(AdditionalDependencies)
4) 我已将以下 dll 文件与我的 .exe 文件(即 Visual Studio 2012\Projects\ConsoleApplication2\Debug)放在同一文件夹中,这些 dll 文件是: SDL_image.dll libfreetype-6.dll SDL_ttf.dll zlib1.dll SDL.dll
这是我的小示例程序源代码:
#include <iostream>
#include <SDL.h>
#include <SDL_ttf.h>
using namespace std;
int main(int argc, char** argv){
int retval = 0;
int sdlState = -1;
if((sdlState = SDL_Init(SDL_INIT_EVERYTHING)) == -1){
cerr << "SDL failed to initialize";
retval = 1;
}
SDL_Surface* screen = nullptr;
if(retval == 0){
if(nullptr == (screen =
SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_ASYNCBLIT)))
{
cerr << "Screen failed to be created";
retval = 1;
}
}
int ttfState = -1;
if(retval == 0){
if((ttfState = TTF_Init()) == -1){
cerr << "True Type Font failed to initialize";
retval = 1;
}
}
if(retval == 0){
//TTF_Font* font = TTF_OpenFont("air.ttf", 32);
SDL_Color txtColor = {0, 0, 0};
//SDL_Surface* text = TTF_RenderText_Solid(font, "Hello World",
//txtColor);
while(1){
SDL_FillRect(screen, NULL,
SDL_MapRGB(screen->format, 255, 255, 150));
//SDL_BlitSurface(text, NULL, screen, NULL);
SDL_Flip(screen);
}
}
if(ttfState != -1) TTF_Quit();
if(sdlState != -1) SDL_Quit();
return retval;
}
【问题讨论】:
-
我终于搞定了!我玩弄了各种 dll 和 lib 文件夹——我终于让它工作了(我认为我可能使用了一些 64 位的 lib 或 dll 文件——我应该有一个 32 位的 lib 或 dll文件 - 但我不确定。
标签: c++ visual-studio-2012 sdl sdl-ttf