我目前正在学习如何在OpenGL中使用FreeType2库来绘制字体。但是,当我启动程序时,它立即崩溃,并显示以下错误:“(无法正确启动应用程序(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文件夹中(调试.exe所在的位置)是: freetype6.dll,libfreetype.dll.a,libfreetype-6.dll。在代码::块中,我链接到了FreeType 2.3.5.1版本的lib和include文件夹。并包含了一个编译器标志:-lfreetype
如果我注释掉FT_Init函数,我的程序启动完全正常,这意味着包含和库文件应该是正常的。
发布于 2012-08-14 14:44:34
对于那些可能遇到同样的问题而又找不到答案的人。我将发布我的解决方案:
似乎错误代码经常出现在加载.dll的时候。我使用进程资源管理器检查我的程序是否加载了正确的.dll,但它不是。我删除了我的FreeType dll,并用专门为我的windows版本编译的版本来替换它们,以确保我有正确的dll。用新的替换旧的dll会有所帮助。
发布于 2012-08-14 20:48:30
我遇到了同样的问题,结果是我忘记复制zlib1.dll文件。
发布于 2013-10-02 08:46:59
我也有同样的“无法正确启动”的错误。原来我的程序在c:\intel\bin中找到了一个zlib1.dll,这个DependencyWalker标记为AMD64 (我的PC是Win7 64,但我的应用程序是32位)。当我将freeType的zlib1.dll复制到SysWOW64时,它被修复了。难解的坚果!
https://stackoverflow.com/questions/11185444
复制相似问题