2013-09-01 2 views
0

Я использую следующий код (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: непредвиденный конец файла обретенным"

+1

это не связано с аллегро. Я бы рекомендовал перезапустить с нуля, создать новый проект, консоль win32 пустая. Поместите «привет мир», создайте, запустите и идите дальше, добавив свой код и связавшись с аллегро. – alexbuisson

+0

Спасибо. Похоже, «Hello world» не работает. Я вернусь к SO, как только узнаю, что происходит. –

ответ

0

Вы получаете ошибку, потому что вы пытаются интегрировать аллегро в проект, который не пуст.

Вы должны создать проект как EMPTY Тип проекта:

New... > Project... > Visual C++ > Empty Project

--edit ДЛЯ ВТОРОГО ERROR--

Вы должны добавить END_OF_MAIN() после закрывающей фигурной скобки int main():

int main() { 
    //... 
} 
END_OF_MAIN() 
+0

Отлично.Исправлена ​​ошибка, теперь у меня есть новая: обновленный основной вопрос –

+0

@ user2712118 обновленный ответ – Casey

+0

Дает мне «фатальную ошибку C1004: обнаружен неожиданный конец файла» –

Смежные вопросы