我想在Windows桌面的Visual Studio Express 2012中安裝SDL_ttf,並且我有一個編譯好的小示例程序,但是當我運行它時,出現錯誤彈出窗口顯示「應用程序無法正確啓動(0xc000007b)。單擊確定關閉應用程序」。試圖在Visual Studio Express 2012中安裝SDL_ttf for Windows Desktop
我最初得到基本的SDL工作,然後我試圖添加SDL字體。我做了以下,但我仍然遇到麻煩,如果有人可以幫我出去,這將是非常感激...
1)我將所有.lib文件夾複製到Visual Studio庫文件夾(C :\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ lib)(它們是SDL.lib,SDLMain.lib和SDL_ttf.lib)
2)我在項目中添加了SDL和SDL_ttf的include目錄屬性(在項目>>屬性>>配置屬性>> VC++目錄>>包含目錄下) ... 這些是(「... \ SDL主庫\ SDL-1.2.15 \ include」) 和(「 ... \ SDL Font Libraries \ SDL_ttf-2.0.11 \ include「)
3)我添加了SDL和SDL_ttf的其他依賴關係(在Project >> Properties >> Configuration Properties >> Linker >> Input >> Aditional Dependencies中,我放入: SDL.lib SDLMain.lib SDL_ttf.lib 在線 - 它看起來像這樣:SDL.lib; SDLMain.lib; SDL_ttf.lib;%(AdditionalDependencies)
4)我已經把下面的dll文件在同一文件夾作爲我的.exe文件(這是視覺工作室2012 \項目\ ConsoleApplication2 \調試),這些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文件文件 - 但我不確定。 – user1296259