- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试在 Visual Studio Express 2012 for Windows Desktop 中安装 SDL_ttf,我有一个编译良好的小示例程序,但是当我运行它时,我收到一个错误弹出窗口,提示“应用程序无法正确启动( 0xc000007b)。点击确定关闭应用程序。
我最初使用基本的 SDL 来工作,然后我尝试添加 SDL 字体。我已经完成了以下操作,但我仍然遇到问题,如果有人能帮助我,我将不胜感激......
1) 我将所有 .lib 文件夹复制到 Visual Studio lib 文件夹 (C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib)(即 SDL.lib、SDLMain.lib 和 SDL_ttf。库)
2) 我在项目属性中添加了 SDL 和 SDL_ttf 的包含目录(在项目 >> 属性 >> 配置属性 >> VC++ 目录 >> 包含目录下)...这些是 ("...\SDL Main Libraries\SDL-1.2.15\include")和 ("...\SDL 字体库\SDL_ttf-2.0.11\include")
3) 我为 SDL 和 SDL_ttf 添加了额外的依赖项(在项目 >> 属性 >> 配置属性 >> 链接器 >> 输入 >> 附加依赖项下,我在其中放置: 文件库 SDLMain.lib SDL_ttf.lib内联 - 它看起来像这样:SDL.lib;SDLMain.lib;SDL_ttf.lib;%(AdditionalDependencies)
4) 我已将以下 dll 文件放在与我的 .exe 文件相同的文件夹中(即 Visual Studio 2012\Projects\ConsoleApplication2\Debug),这些 dll 文件是: SDL_image.dll libfreetype-6.dll SDL_ttf.dll zlib1.dll SDL.dll
这是我的小示例程序源代码:
#include <iostream>
#include <SDL.h>
#include <SDL_ttf.h>
using namespace std;
int main(int argc, char** argv){
int retval = 0;
int sdlState = -1;
if((sdlState = SDL_Init(SDL_INIT_EVERYTHING)) == -1){
cerr << "SDL failed to initialize";
retval = 1;
}
SDL_Surface* screen = nullptr;
if(retval == 0){
if(nullptr == (screen =
SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_ASYNCBLIT)))
{
cerr << "Screen failed to be created";
retval = 1;
}
}
int ttfState = -1;
if(retval == 0){
if((ttfState = TTF_Init()) == -1){
cerr << "True Type Font failed to initialize";
retval = 1;
}
}
if(retval == 0){
//TTF_Font* font = TTF_OpenFont("air.ttf", 32);
SDL_Color txtColor = {0, 0, 0};
//SDL_Surface* text = TTF_RenderText_Solid(font, "Hello World",
//txtColor);
while(1){
SDL_FillRect(screen, NULL,
SDL_MapRGB(screen->format, 255, 255, 150));
//SDL_BlitSurface(text, NULL, screen, NULL);
SDL_Flip(screen);
}
}
if(ttfState != -1) TTF_Quit();
if(sdlState != -1) SDL_Quit();
return retval;
}
最佳答案
这个问题可能会重命名为“尝试在 Visual Studio Express 2012 for Windows Desktop 中安装第 3 方库”。虽然您的步骤有效,但它们在某种程度上并不是最佳的,尤其是当您打算共享您的项目并与他人合作时!
基本上,这类库有 3 种主要文件类型,headers、libraries 和binaries。以下是有关如何改进项目的一些提示:
headers - 这些文件定义了您与库的接口(interface)。通常,要让 Visual Studio 知道它们的位置,首选方法是进入 Project Settings > Configuration Properties > C/C++ > General > Additional Include Directories
。如果您想与某人共享您的项目(可能通过 Perforce、Git 或 SVN 等源代码管理),您应该使用 Relative Paths
而不是 Absolute Paths
。我的意思是,如果您直接以 C:\Projects\SDL\...
之类的文件为目标,您最终会为团队中的每个成员提出一些关于将项目存储在何处的要求,就好像您使用 ..\External\SDL\...
之类的东西,无论其他团队成员在哪里存储您的解决方案,只要他们在正确的相对文件夹中有正确的库,它就应该可以工作。
库 - 库分为两部分。首先,您需要告诉链接器到哪里寻找所需的库。 不要将您的库直接复制到您的 VC\libs 文件夹中,而是使用 Project Settings > Configuration Properties > Linker > General > Additional Library Directories
。有关相对文件夹的相同规则适用于此处。然后,您需要告诉链接器要使用哪些库,这是通过 Project Settings > Configuration Properties > Linker > Input > Additional Dependencies
完成的,您在其中列出所有 .lib
SDL.lib
, SDLmain.lib
, SDL_ttf.lib
等文件...
二进制文件 - 这里的二进制文件将是您需要的.dll
文件。一个简单的选择是将它们手动复制到您的输出文件夹(请记住,您可以有多个 Configuration
,而不仅仅是 Debug
)。否则,您可以通过一些自动为您复制的 Post-Build
步骤来自动化该过程。
对于所有这些设置,请考虑 Project Properties
窗口默认针对单个配置!要将更改应用于每个配置,请在顶部可能显示 Active(Debug)
的下拉列表中选择 All Configurations
,然后更改设置。它们将应用于您项目中的每个配置。
编辑:此外,对于共享项目,根据项目背后的理念,您可能希望将外部库包含在源代码管理中。我知道 linux 的人会完全反对,但这是我经常看到的事情。它确保每个人都在使用与代码对应的库版本(例如,如果您升级到较新版本的库并且界面发生变化,如果您仅更改源代码管理上的代码,您将不得不警告您其他团队成员手动升级到新库,就像它在您的源代码管理中一样,同步将使他们与项目代码和外部库保持同步)。
关于c++ - 尝试在 Visual Studio Express 2012 for Windows Desktop 中安装 SDL_ttf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433416/
我经常使用 SSMS 查询数据和构建数据集,我的 IT 部门负责数据库管理。 最近我发现了 Azure Data Studio,我喜欢: 智能感知 源代码控制(例如使用 Git) 来自社区的扩展 SQ
我想根据我使用的 visual studio 版本编译不同的东西,比如 #if VISUAL_STUDIO_VERSION > 2015 eventH?.Invoke(this, EventArgs.
我们的开发团队计划从 visual studio 2005 升级到 visual studio 2010 -- 跳过 visual studio 2008。 大部分项目是VB ASP.NET项目,使用
我的Visual Studio 2015无法构建2010平台工具集。它说: The build tools for Visual Studio 2010 (v100) cannot be found.
我目前正在使用 Visual Studio 2015 来编程 ASP.NET Core 应用程序。我对安装 Visual Studio 2017 有以下疑问: 什么被认为是最佳实践和/或最干净的方法?
尝试从扩展和更新获取 Visual Studio 扩展时,出现以下错误:- 向 visualstudiogallery.msdn.microsoft.com/Services/VStudio/Exte
这个问题在这里已经有了答案: Can Visual Studio Code and VS 2012 be installed on same computer? (1 个回答) 关闭去年。 在安装了
作为标准安装的一部分,Visual Studio Code 带有一个名为“Monokai Dimmed”的颜色主题。 有没有办法将它移植到 Visual Studio 2015?我检查了社区主题( h
我想开始编程 CUDA。 我已经安装了 Visual Studio 2010 Express。 我还安装了 nVidia nSight Visual Studio。 而且我具备所有常见的先决条件(Ne
Visual Studio Community Edition是否可以使用Visual Studio Online帐户上的存储库? 我一直为包含在Online帐户中的Visual Studio Onl
我有一个我一直在开发的应用程序,但在 android studio 上遇到了问题。当我点击“build->run”然后选择我的设备时,应用程序永远不会在我的手机上运行(并且自动出现的android-s
我正在使用Visual Studio2010。我面临的一个问题是,当我创建一个新的Web项目时,Visual Studio将创建该项目,并且不会在解决方案资源管理器中显示其解决方案。 另一件事是,我想
我通读了这里的许多帖子,却找不到一个有效的明确答案。因此,在花了一些时间使它生效之后,我认为应该发布它。 问题:发布配置文件将建立在服务器上,但不会发布。 解: 确保已安装Microsoft Wind
我正在尝试使用Visual Studio 2012构建针对.NET 3.5的C++ CLI应用程序。 通过安装Visual Studio 2008,并指定v90平台工具集,我已经在一台机器上进行了这项
我在 Microsoft Visual Studios 2013 中有一个项目,我想在 Microsoft Visual Studios 2010 中打开它。有什么简单的方法吗?还是我必须在2010年
我想知道,如果我发送一个解决方案文件夹(它是用 visual studio C# 编写的),您可以在 visual studio for mac 中打开解决方案吗? 在visual studio 20
有没有办法在 Visual Studio Code 和 Visual Studio 中设置相同的快捷方式(而不必每次都手动更改它们)? 例如,我在 Visual Studio Code 中经常使用 A
我刚开始了解 Visual Studio Code。我想知道,我可以将 Visual Studio 替换为所有 .NET 开发相关的工作吗? 我可以节省 Visual Studio 许可的成本吗? V
我安装了具有有效许可证(Visual Studio 订阅)的 Visual Studio 2019 企业版(VS 2019 16.1.4),它运行良好。 突然之间,当我尝试打开项目或项目中的任何文件时
我一直在使用 Compass 编译 Windows 环境中的 sass 文件,无论是在命令行上还是使用 Compass-app 来查看目录。 我刚刚开始使用 Visual Studio(专业版 201
我是一名优秀的程序员,十分优秀!