2012-06-25 228 views
2

我目前正在嘗試學習如何使用FreeType2庫來繪製OpenGL字體。但是,當我啓動該程序時,它立即崩潰,並出現以下錯誤:「(無法正確啓動應用程序(0xc000007b))」FT_Init_FreeType上的FreeType2崩潰

註釋FT_Init_FreeType會消除錯誤,並且我的遊戲開始正常。我想知道,如果這是我的代碼或與加載DLL文件有關。

我的代碼:

#include "SpaceGame.h" 
#include <ft2build.h> 
#include FT_FREETYPE_H 

//Freetype test 
FT_Library library; 

Game::Game(int Width, int Height) 
{ 

    //Freetype 
    FT_Error error = FT_Init_FreeType(&library); 
    if(error) 
    { 
     cout << "Error occured during FT initialisation" << endl; 
    } 

而且我目前使用的對FreeType2文件。 在我的bin文件夾(debug.exe所在位置)內部是:freetype6.dll,libfreetype.dll.a,libfreetype-6.dll。 在Code :: Blocks中,我鏈接到FreeType 2.3.5.1版本的lib和include文件夾。 幷包括一個編譯器標誌:-lfreetype

我的程序啓動完全正常,如果我註釋掉FT_Init函數,這意味着包括,庫文件應該沒問題。

回答

2

對於可能偶然發現相同問題而無法找到它的人。我會發布我的解決方案:

這似乎是錯誤代碼ussualy與加載.dll的。我使用進程資源管理器來檢查我的程序是否實際上加載了正確的.dll,但它不是。我刪除了我的FreeType DLL,並用專門爲我的Windows版本編譯的版本替換它們,以確保我擁有正確的DLL。用新的替換舊的幫助。

1

我有同樣的問題,我忘了複製zlib1.dll文件。

+0

hehe是啊,使用和管理所有權利的dll的有時可能是一個婊子:) –

+0

哇,這也解決了我的問題。否則我永遠不會解決! –

+0

找到的文件在哪裏? –

1

我有相同的「無法正確啓動」的錯誤。事實證明,我的程序在類似c:\ intel \ wifi \ bin的東西中找到了一個zlib1.dll,DependencyWalker標記爲AMD64(我的電腦是Win7 64,但我的應用程序是32位。)當我複製freeType SysWOW64 zlib1.dll。堅韌的堅果來破解!