2

私は現在、FreeType2 ライブラリを使用して OpenGL でフォントを描画する方法を学ぼうとしています。ただし、プログラムを起動するとすぐに次のエラーでクラッシュします: "(アプリケーションを正しく起動できません (0xc000007b))"

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 関数をコメントアウトすると、プログラムは完全に正常に起動し、ライブラリ ファイルは問題ないはずです。

4

3 に答える 3

2

同じ問題に出くわす可能性があり、それを見つけることができない人々のために。私は私の解決策を投稿します:

通常、.dll をロードするとエラー コードが表示されるようです。プロセス エクスプローラーを使用して、プログラムが実際に正しい .dll を読み込んでいるかどうかを確認しましたが、そうではありませんでした。FreeType dll を削除し、使用しているバージョンの Windows 用に特別にコンパイルされたバージョンに置き換えて、適切な dll があることを確認しました。古いものを新しいものと交換することは役に立ちました。

于 2012-08-14T06:44:33.823 に答える
1

私は同じ問題を抱えていました.zlib1.dllファイルをコピーするのを忘れていたことがわかりました.

于 2012-08-14T12:48:30.397 に答える
1

同じ「正しく開始できません」というエラーが発生しました。私のプログラムは c:\intel\wifi\bin のような場所で zlib1.dll を見つけていたことが判明し、その DependencyWalker は AMD64 としてフラグを立てていました (私の PC は Win7 64 ですが、私のアプリは 32​​ ビットです)。 zlib1.dll を SysWOW64 に。割るにはタフなナット!

于 2013-10-02T00:46:58.713 に答える