Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++ Allegro -Ongelma

Sivun loppuun

k-mikko [11.08.2003 04:02:28]

#

Mökiltä palatessani ajattelin "Tänään perehdyn peliohjelmoinnin maailmaan" ja useampien erilaisten ohjelmistoyhdistelmien jälkeen päädyin Borland C++ Builderiin ja Allegro grafiikka-mikäliehen.

Koska systeemi oli tarkoitus saada toimimaan, kopioin erään yksinkertaisen Allegron tutorial-pätkän, joka menee seuraavasti:

#include <allegro.h>

int main(int argc, char *argv[])
{
allegro_init();

set_gfx_mode(GFX_AUTODETECT, 640,480,0,0);

readkey();

return(0);// Exit with no errors
}
END_OF_MAIN();

Käyttis on Windows 98 ja olen Borlandilla yrittänyt kääntää ko. ohjelmaa MS-DOS-tilassa operoiden.

Ylempänä olevaa ohjelmaa kääntäessäni Borland kuitenkin ilmoittaa:

E:\Borland\BCC55\Bin>bcc32 Noname1.cpp
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
Noname1.cpp:
Error E2132 e:\Borland\Bcc55\include\stdlib.h 434: Templates and overloaded oper
ators cannot have C linkage
Error E2040 e:\Borland\Bcc55\include\stdlib.h 434: Declaration terminated incorr
ectly
Error E2316 e:\Borland\Bcc55\include\stdlib.h 507: '_argc' is not a member of 's
td'
Error E2272 e:\Borland\Bcc55\include\stdlib.h 507: Identifier expected
Error E2316 e:\Borland\Bcc55\include\stdlib.h 508: '_argv' is not a member of 's
td'
Error E2272 e:\Borland\Bcc55\include\stdlib.h 508: Identifier expected
Error E2316 e:\Borland\Bcc55\include\stdlib.h 605: 'min' is not a member of 'std
'
Error E2272 e:\Borland\Bcc55\include\stdlib.h 605: Identifier expected
Error E2316 e:\Borland\Bcc55\include\stdlib.h 606: 'max' is not a member of 'std
'
Error E2272 e:\Borland\Bcc55\include\stdlib.h 606: Identifier expected
*** 10 errors in Compile ***

Ongelman aiheuttajasta minulla ei ole hajuakaan. Olen mm. ladannut ja asentanut Allegron useampaan kertaan, eli siirron aikana tapahtuneesta virheestä tuskin on kyse.

Kuten jo sanoin, olen toistaiseksi totaalinen viherpeukalo C++:n kanssa, eli jos kysymys oli jostain todella yksinkertaisesta ja minä en sitä tajunnut, älkää lyökö lujaa :)

arcatan [11.08.2003 08:12:07]

#

lainaus:

Käyttis on Windows 98 ja olen Borlandilla yrittänyt kääntää ko. ohjelmaa MS-DOS-tilassa operoiden.

Miksi? Minusta on paljon kätevämpää tehdä se Windowsissa, MS-DOS-kehotteessa tai peräti makella...

Mutta ongelmastasi sen verran, että ongelmat eivät liittyne Allegroon vaan itse Borlandin kääntäjän vakio-otsikkotiedostoihin (vai mikä nyt lienee oikea termi).

thefox [11.08.2003 11:40:17]

#

Hakuammuntaa, mutta kokeile kääntää tuo C-tiedostona. Tai includeta allegro.h seuraavasti:

extern "C"
{
#include <allegro.h>
}

Grusifix [16.08.2003 00:41:55]

#

En itse ole koskaan tohon Borlandiin oikein luottanut. Mutta mikäs se tuo END_OF_MAIN() tuolla alhaalla on? Onko se ANSI-C++:aa?

k-mikko [16.08.2003 11:41:29]

#

End_OF_MAIN() on niitä Allegron juttuja.

tejeez [16.08.2003 15:33:36]

#

Onkohan se end of main väärässä paikassa?

NJAB [16.08.2003 21:50:55]

#

Mä en tiä tost allegrosta mitään mut luulisin et siihen tarvii linkittää joku 'allegro.lib', josta ne funkiot, jotka on määritelty 'allegro.h':ssa, löytyy.

pah, openGL+D3D

k-mikko [17.08.2003 14:30:17]

#

lainaus:

Onkohan se end of main väärässä paikassa?

Tuo sorsa on suoraan kopioitu eräältä allegro.cc:ssä suositellulta sivulta. Ajattelin tehdä niin, että kaikki ilmenevät ongelmat olisivat nimenomaan kääntäjän syytä, eikä koodia pitäisi enää "tweakata"...

thefox [17.08.2003 16:51:57]

#

Mitä kääntäjä sanoo jos renametat tuon filun "Noname1.c":ksi ja käännät?

Grusifix [18.08.2003 22:34:28]

#

Koitapa lukea suomipelit.com:in Allegro tutoriaali. Jos vaikka olis apua. Siinä ei muuten ollut mitään END_OF_MAIN() hommaa. Mielestäni tuo on sairain C/C++ rivi mitä olen nähnyt. Näyttää funktio kutsulta, mutta on varmaan toteutettu #definellä

thefox [19.08.2003 19:35:02]

#

lainaus:

Koitapa lukea suomipelit.com:in Allegro tutoriaali. Jos vaikka olis apua. Siinä ei muuten ollut mitään END_OF_MAIN() hommaa. Mielestäni tuo on sairain C/C++ rivi mitä olen nähnyt. Näyttää funktio kutsulta, mutta on varmaan toteutettu #definellä

IIRC, Windowsille käännettäessä (ja eräissä muissa tpaauksissa) vaaditaan tuo END_OF_MAIN(), suomipelit.comin tutoriaalit ovat DJGPP:lle.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta