У меня странная проблема с получением libtcod для работы с Visual Studio 2015.
Я выполнил все шаги, найденные на этом Сообщение блога чтобы связать все.
Проблема в том, что во время отладка или запуск внутри Visual Studio приложение всегда будет закрываться в initRoot с кодом выхода 1, без другой информации или ошибок.
Запуск созданного EXE вне Visual Studio не имеет никаких проблем — запускается и работает как положено!
Единственная информация, которую я смог найти, была сообщение на форуме, которое стало безобразным в 2012 году
Я внес изменение в код поста блога, включив также setCustomFont, который ничего не изменил.
У кого-нибудь есть идеи о том, что может происходить?
Код:
#include <cstdio>
#include "libtcod.hpp"
// Hide the console window
#pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
int main()
{
TCODConsole::setCustomFont("terminal12x12_gs_ro.png", TCOD_FONT_LAYOUT_ASCII_INROW | TCOD_FONT_TYPE_GRAYSCALE);
TCODConsole::initRoot(80, 50, "C++ libtcod tutorial");
TCODConsole::root->printEx(40, 25, TCOD_BKGND_NONE, TCOD_CENTER, "Hello world");
TCODConsole::flush();
TCODConsole::waitForKeypress(true);
return 0;
}
Для любого, кто сталкивается с этим позже, приведенный выше пост в блоге подходит для настройки подавляющего большинства приложений — если вы столкнулись с той же проблемой, что и я (сбой / выход из initRoot), убедитесь, что у вас есть терминал png в источнике каталог, это то, что исправило это для меня.
Других решений пока нет …