Я использую следующий код (Allegro 4, C++), и получаю следующее сообщение об ошибке:Allegro4/C++ дает ошибку
#include <allegro.h>
//defines
#define MODE GFX_SAFE
#define WIDTH 640
#define HEIGHT 480
int main (void)
{
int ret;
int counter;
//initialize allegro
allegro_init();
install_keyboard();
install_timer();
srand(time(NULL));
//set up screen
//set video mode
ret = set_gfx_mode(MODE, WIDTH, HEIGHT, 0, 0);
if (ret != 0)
allegro_message(allegro_error);
allegro_exit();
return 0;
}
Ошибка:
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
Все предыдущие ответы о том, что Ошибка подскажите мне переключиться на «Консоль» из «Windows»; но у меня уже есть «Консоль» в Properties-> Linker-> System-> Subsystem.
Если у вас нет ответа, я был бы доволен чем-то, что мог бы сделать, чтобы сузить проблему: я использовал Allegro с C, но я хочу использовать C++, чтобы использовать ООП, и поэтому мне еще предстоит сделать много работы.
Update:
#include <iostream>
#include <allegro.h>
using namespace std;
int main()
{
cout << "Hello World";
return 0;
}
не работает, но
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World";
return 0;
}
делает.
Теперь что? Ответ: Начните с пустого проекта.
Update2: перезапущен с пустым проектом, с тем же кодом. Первый блок (alleg.lib в компоновщике, но allegro.h не включен) работает, второй код (allegro.h включен) не делает. Тем не менее, ошибка отличается:
1> LINK: фатальная ошибка LNK1561: точка входа должна быть определена
Что теперь?
Редактировать^2: игнорировать все следующее: я забыл вернуться к включению Аллегро. Он работает сейчас. Спасибо всем за ответы.
Edit: Добавление:
END_OF_MAIN()
или
int END_OF_MAIN()
дает ошибку "фатальная ошибка C1004: непредвиденный конец файла обретенным"
это не связано с аллегро. Я бы рекомендовал перезапустить с нуля, создать новый проект, консоль win32 пустая. Поместите «привет мир», создайте, запустите и идите дальше, добавив свой код и связавшись с аллегро. – alexbuisson
Спасибо. Похоже, «Hello world» не работает. Я вернусь к SO, как только узнаю, что происходит. –