Salut à tous !
Bon, j´ai un petit problème ! J´ai téléchargé un tutorial sur la 2D en C++, composé d´un . cpp, d´un . doc, et d´un . exe qui semble être la version compilée du . cpp présent !
Mais lorsque j´essaie de compiler le . cpp, je reçois plein d´erreurs de compilations...
Je regarde un peu autour de moi, et je vois ça en haut du cpp :
COMPILATEUR : Borland Turbo C++ Real Mode 16-bit compiler
NOTES : Compiler avec modele memoire Compact
( J´utilise Dev-C++) J´aimerais savoir ce que ça signifie, et est-ce que ça peut être en rapport avec mes erreurs de compilation ?
Merci d´avance, si vous voulez des détails sur les fichiers ou les erreurs demandez et je vous fourinirais tout !
oui, car chaque compilateur utilise un C++ légèrement différend des autres, et tu risque d´avoir beaucoup de mal à compiler ( même si c´est toujours possible).
Donc il faudrait que je télécharge Borland Turbo C++ Real Mode 16-bit compiler ?
Je le trouve où ? ( je cherche sur Google mais je tombe sur des pages nulles genre http://www.netrino.com/Bo/Books/EmbeddedC/examples.html ou http://www.thefreecountry.com/programming/debuggers.shtml )
Tu devrais trouver le Borland C++ sur le site officiel de Borland, voire même une version ancienne sur [ http://www.telecharger.com ]. Ensuite le ´real Mode 16-bit´ tu le définie dans les options de compilation.
Encore désolé mais je suis paumé sur le site de Borland ! ^^
Je suis sur ette page : http://www.borland.com/pr/products/downloads/index.html
Et je ne sais pas exactement ce que je dois télécharger...
S´il vous plaît vous pouvez me guider ? ( En attendant je prends la vieille version de telecharger.com)
Bon c´est bon j´vais me débrouiller avec celui de telecharger.com !
Pour avoir TC++ 1.01 sous DOS : http://community.borland.com/article/0,1410,21751,00.html
Sinon certaines sources sur le VGA ont été écrites pour TC++ 3.0 ( DOS)
Tu peux le télécharger ici :
ftp://https://www.jeuxvideo.com//ftp.frontfree.net/Pub/DevTools/tcpp3.zip
Je crois que ces deux compilateurs sont de toute façon en mode réel 16-Bits.
le lien pour TC++ 3.0 est mort ( même après une exploration du site, leurs liens sont mort aussi).
J´ai téléchargé un truc qui s´appelait Borland Tools ou un truc du genre mais ya pas d´exécutable à part un convertisseur de chais pas trop quoi...
Et j´ai téléchargé Tcpp du premier lien et je vais tester...
TC++ Non plus je comprend pas j´ai installé et ya rien à part dans le dossier Bin plein d´éxécutables mais je capte pas tout...
Dev-C++ ya pas à dire c bien mieux simplifié pour un noob comme moi !
TC++ 1.0 et 3.0 sont pour MS-DOS.
Dans le dossier bin, c´est TC.EXE qu´il faut lancer.
Et sous dos, c´est sur que c´est le meilleurs ( bien mieux que djgpp). Pour windows, moi je trouve ça bien pour aprendre, mais tout le monde est pas de mon avis.
Euh...il reconnait pas mon fichier.cpp . ..
C´est bizarre apparemment il chercherait des fichiers de tipes *.prj . ..
Vous pouvez m´aider ? Comment aussi le configurer en Real Mode 16-bits ? J´ai un peu farfouillé le menu mais je trouve pas grand chose...
http://sun.uos.ac.kr/down/tc30.zip est un lien qui fonctionne pour TC++3.0.
Sinon quand tu es sous TC++, tu fais open, une fenètre s´affiche et à la fin du chemin du répertoire courant, tu modifie l´extension ( *.c ou *.cpp ou *.*). TC++ est deja en mode Réel 16Bits, tu n´as pas besoin de le configurer.
Merci beaucoup je vais essayer ça !
Bon mon code a plein d´erreurs alors est-ce que vous pourriez m´aider à le débugger s´il vous plaît ?
Le Code Source :
//------------------------------------------------
----------------------//
/ / Fichiers include / /
//------------------------------------------------
----------------------//
//------------------------------------------------
----------------------//
/ / Mode d´image / /
//------------------------------------------------
----------------------//
void setmode(unsigned int mode)
{
asm{
MOV AX, mode
INT 0x10
}
}
//------------------------------------------------
----------------------//
/ / Afficher un pixel / /
//------------------------------------------------
----------------------//
void putpixel ( int x, int y, unsigned char coul)
{
ecran[(y*320)+x] = coul;
}
//------------------------------------------------
----------------------//
/ / Clear Screen / /
//------------------------------------------------
----------------------//
Void cls ( )
{
memset(ecran,0,64000L);
}
//------------------------------------------------
----------------------//
/ / Main / /
//------------------------------------------------
----------------------//
main()
{
setmode(0x13);
putpixel(10,10,10);
char *ecran = ( char *) ( 0xA0000000L);
getch();
cls();
setmode(0x03);
}
Et le compilateur me renvoie ces erreus :
Undefined symbol ´ecran´ in function putpixel(int,int,unsigned char)
Parameter ´coul´ is never used in function putpixel(int,int,unsigned char)
Parameter ´x´ is never used in function putpixel(int,int,unsigned char)
Parameter ´y´ is never used in function putpixel(int,int,unsigned char)
Type name expected [à la ligne où il ya void cls ( )]
Function ´memset´ should have a prototype in function cls()
Undefined symbol ´ecran´ in function cls()
C´est tout ( déjà trop ! ^^)...Moi j´ai aucune idée d´où ça peut venir...
Je me suis trompé !
Ma main est comme ça :
main()
{
setmode(0x13);
char *ecran = ( char *) ( 0xA0000000L);
putpixel(10,10,10);
getch();
cls();
setmode(0x03);
}
les fichier . prj sont les fichiers projets de de TC++.
Il faut que tu déclare " ecran" comme variable globale, donc hors de la fonction main() .
D´accord Faaq je vais essayer ça merci d´avance !
/ * ---Fichiers include--- */
/ * ---Variables globales--- */
char *ecran = ( char *) ( 0xA0000000L);
/ * ---Mode d´image--- */
void setmode(unsigned int mode)
{
asm{
MOV AX, mode
INT 0x10
}
}
/ * ---Afficher un pixel--- */
void putpixel ( int x, int y, unsigned char coul)
{
ecran[(y*320)+x] = coul;
}
/ * ---Clear Screen--- */
Void cls ( )
{
memset(ecran,0,64000L);
}
/ * ---Main--- */
main()
{
setmode(0x13);
putpixel(10,10,10);
getch();
cls();
setmode(0x03);
}
Voilà le nouveau code source, et maintenant j´ai ces erreurs :
Ligne
char *ecran = ( char *) ( 0xA0000000L);
Erreur
Illegal initialization
Ligne
void cls()
Erreur
Type name expected
Ligne
memset(ecran,0,64000L);
Erreur
Function ´memset´ should have a prototype in function cls()
Ligne
} ( celle après l´erreur juste au-dessus)
Erreur
Function should return a value in function cls()
Ca me parait très bizarre, déjà il dit que le void doit renvoyer une valeur, et les autres erreurs je capte rien...C´est louche !