我目前正在尝试学习如何使用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函数,这意味着包含,并且库文件应该没问题,我的程序就会完全正常。
答案 0 :(得分:2)
对于那些可能会遇到同样问题并且无法找到问题的人。我会发布我的解决方案:
似乎错误代码ussualy出现了加载.dll的。我使用进程资源管理器来检查我的程序是否实际加载了正确的.dll,但事实并非如此。我删除了我的FreeType dll并将其替换为专门为我的windows版本编译的版本,以确保我有正确的dll。用新的替换旧的帮助。
答案 1 :(得分:1)
我遇到了同样的问题,结果发现我忘了复制zlib1.dll文件。
答案 2 :(得分:1)
我有同样的“无法正确启动”错误。事实证明我的程序在c:\ intel \ wifi \ bin之类的东西中找到了一个zlib1.dll,DependencyWalker标记为AMD64(我的PC是Win7 64,但我的应用程序是32位。)当我复制freeType时它被修复了zlib1.dll到SysWOW64。坚韧的坚果要破解!