Autor Wątek: Zawieszanie się programu.  (Przeczytany 5222 razy)

Offline Orches

  • Użytkownik

# Wrzesień 19, 2010, 23:58:47
Witam!
Zaczynam programować w Allegro i mam pewien problem.
#include <allegro.h>
int main() {
    allegro_init();
    install_keyboard();
    set_color_depth(32);
    set_gfx_mode(GFX_AUTODETECT_WINDOWED,800,600,0,0);
    install_mouse();
    show_mouse(screen);
    unscare_mouse();
    clear_to_color(screen, makecol(0,0,0));
    while(!key[KEY_ESC])
    {
    if(mouse_b == 1)
    {
    putpixel(screen, mouse_x, mouse_y, makecol(255,255,255));
    }
    if(mouse_b == 2)
    {
    clear_to_color(screen, makecol(0,0,0));
    }
    rest(100);
    }
    allegro_exit();
    return 0;
}
END_OF_MAIN();
Skompilowałem i uruchomiłem. Niestety po kilku sekundach program się zawiesza. Jeśli nie użyje funkcji "rest(100);" aplikacja crash'uje się prawie natychmiast. Gdy zaczynałem pisać prostą grę także miałem ten problem (wyeliminowałem go timerem). Dziwi mnie jednak to, że program się zawiesza - wcześniej problem nie występował.
Wymieniałem ostatnio komputer na nowy oraz zmieniałem system operacyjny z Windows 7 32 bit na 64 bit. Może być to tego przyczyna? Mam nadzieję, że jest to raczej błąd w kodzie programu. Do programowania używam Dev-C++ 4.9.9.2 (nie powinien być problemem - na wcześniejszej konfiguracji posiadałem tą samą wersje).

Z góry dziękuje.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Rokuzo

  • Użytkownik
    • Masz na sprzedaż klucze do cs go?


Offline Xirdus

  • Redaktor

# Wrzesień 20, 2010, 19:28:19
Po pierwsze zamień dev c++ na coś co można nazwać IDE, czyli np. Visual Studio albo Code::Blocks. Jak już to zrobisz to uruchom program z debuggerem. Debugger m.in. powie ci, w którym dokładnie miejscu się wysypuje.


Offline Orches

  • Użytkownik

# Wrzesień 21, 2010, 00:29:07
Dzięki za odpowiedź. :D
Nie zorientowałem się w sumie, że Dev-C++ jest z 2005 roku. :P
Jak znajdę chwilę wolnego czasu to zainstaluje Visual C++. :)

Offline Maciekp

  • Użytkownik
    • maciekpartyka

# Wrzesień 21, 2010, 01:29:29
Sagaceil'owi to nie przeszkadza :P EF jest tworzony na Dev-C++, a jak wiadomo, jest to już całkiem duży projekt -> http://blog.etherfields.com

Offline Barthap

  • Użytkownik
    • Mój blog

# Wrzesień 21, 2010, 07:50:29
No to co, robimy wojnę z autorami EF o Dev-C++?

Offline Stig

  • Użytkownik

# Wrzesień 21, 2010, 08:02:41

Offline Liosan

  • Redaktor

# Wrzesień 21, 2010, 08:22:55
Sagaceil'owi to nie przeszkadza :P EF jest tworzony na Dev-C++, a jak wiadomo, jest to już całkiem duży projekt -> http://blog.etherfields.com
A to nie jest ten "duży projekt" który nie używa VCSa tylko dropboxa? :P

Liosan

Offline Orches

  • Użytkownik

# Wrzesień 24, 2010, 21:10:04
Zainstalowałem Visual C++ 2010. Próbuje go właśnie rozpracować i napotkałem na problem przy kompilowaniu programu "Hello World". :/
#include <iostream>
using namespace std;
main()
{
int a;
cout<<"Hello World"<<endl;
cin>>a;
return 0;
}

Visual C++ wywala to:

Cytuj
1>------ Build started: Project: Hello World, Configuration: Debug Win32 ------
1>  stdafx.cpp
1>  Hello World.cpp
1>d:\XXXX\hello world.cpp(1): warning C4627: '#include <iostream>': skipped when looking for precompiled header use
1>          Add directive to 'StdAfx.h' or rebuild precompiled header
1>d:\XXXX\hello world.cpp(10): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "StdAfx.h"' to your source?
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Rozumiem, że muszę dodać do kodu plik nagłówkowy "StdAfx.h". Mógłby mi ktoś wytłumaczyć do czego on służy? Pierwszy raz piszę w takim kompilatorze i za bardzo nie wiem co z czym jeść.  ::)

Offline Liosan

  • Redaktor

# Wrzesień 24, 2010, 21:16:41
Wyłącz precompiled headers w konfiguracji projektu, oszczędzisz sobie zamieszania na początek :)

Liosan

Offline Orches

  • Użytkownik

# Wrzesień 24, 2010, 21:23:42
Dzięki. ;)
Pomogło lecz nie do końca...
Cytuj
1>------ Build started: Project: Hello World, Configuration: Debug Win32 ------
1>  Hello World.cpp
1>d:\XXXX\hello world.cpp(4): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Z tego ja nic nie rozumiem.  :(

Offline Xirdus

  • Redaktor

# Wrzesień 24, 2010, 21:33:18
Ty programujesz w C czy C++? W tym drugim nie ma czegoś takiego, że funkcja bez typu jest typu int. Trzeba to jawnie określić.

Offline Orches

  • Użytkownik

# Wrzesień 24, 2010, 21:34:44
Programuje w C++. Taki kod w Dev-C++ kompiluje mi się bezproblemowo. W Visual C++ muszę coś jeszcze dopisać?  ;D

Offline Joker

  • Użytkownik

# Wrzesień 24, 2010, 21:46:38
Kolega wyżej napisał co oznacza błąd, więc chyba już wiesz co trzeba zrobić... Poza tym z jakiego kursu się uczysz ?