Сбой FreeType2 на FT_Init_FreeType

В настоящее время я пытаюсь научиться использовать библиотеку 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. И включил флаг компилятора: -lfreetype

Моя программа запускается отлично, если я закомментирую функцию FT_Init, что означает, что включение и библиотечные файлы должны быть в порядке.


person Joey Dewd    schedule 25.06.2012    source источник


Ответы (3)


Для людей, которые могут наткнуться на ту же проблему и не могут найти ее. Я опубликую свое решение:

Казалось, что код ошибки обычно возникает при загрузке .dll. Я использовал Process Explorer, чтобы проверить, действительно ли моя программа загружает правильную .dll, но это не так. Я удалил свои библиотеки DLL FreeType и заменил их версией, скомпилированной специально для моей версии Windows, чтобы убедиться, что у меня есть правильные библиотеки DLL. Замена старого на новый помогла.

person Joey Dewd    schedule 14.08.2012

У меня была такая же проблема, оказалось, что я забыл скопировать файл zlib1.dll.

person Knarf    schedule 14.08.2012
comment
хе-хе, да, использование и управление всеми правильными dll иногда может быть сукой :) - person Joey Dewd; 14.08.2012
comment
Вау, это тоже решило мою проблему. Я бы никогда не решил это иначе! - person Lars Pensjö; 12.10.2012
comment
Где находится файл? - person basickarl; 06.10.2014

У меня была такая же ошибка "не удается правильно запустить". Оказалось, что моя программа находила zlib1.dll в чем-то вроде c:\intel\wifi\bin, которую DependencyWalker пометил как AMD64 (мой компьютер - Win7 64, но мое приложение 32-битное). Это было исправлено, когда я скопировал файлы freeType. zlib1.dll в SysWOW64. Крепкий орешек!

person PaulQ    schedule 02.10.2013