Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Programmation graphique en C [ Archives / Au secours ] (NeoFab)

vendredi 28 février 2003 à 11:59:22 | Programmation graphique en C

NeoFab

Salut à tous!

J'étudie en ce moment la programmation en C sous Turbo c++ pour faire du graphisme, en écrivant directement dans la mémoire de la carte vidéo. J'ai trouvé un super tuto là dessus, celui de Shaun Dore (vous connaissez?). Bref y'a un pb, d'où ma question: à une ligne, il écrit:

char *ecran = (char *) (0xA0000000L); // Pointeur sur RAM video

mais turbo C++ produit une erreur: il refuse de "caster" un long en char*... et pourtant l'exécutable fourni avec le tuto marche impec'! Shaun a compilé sans pb lui... Mais comment faire pour arriver au même résultat?
Merci!



Neo[Fab], the Only One: www.neofab.fr.st

vendredi 28 février 2003 à 13:32:14 | Re : Programmation graphique en C

cedb002

convertit en char au lieu de char* puis prends en la référence



-------------------------------
Réponse au message :
-------------------------------

> Salut à tous!
>
> J'étudie en ce moment la programmation en C sous Turbo c++ pour faire du graphisme, en écrivant directement dans la mémoire de la carte vidéo. J'ai trouvé un super tuto là dessus, celui de Shaun Dore (vous connaissez?). Bref y'a un pb, d'où ma question: à une ligne, il écrit:
>
> char *ecran = (char *) (0xA0000000L); // Pointeur sur RAM video
>
> mais turbo C++ produit une erreur: il refuse de "caster" un long en char*... et pourtant l'exécutable fourni avec le tuto marche impec'! Shaun a compilé sans pb lui... Mais comment faire pour arriver au même résultat?
> Merci!
>
>
>
> Neo[Fab], the Only One: www.neofab.fr.st

vendredi 28 février 2003 à 13:57:46 | Re : Programmation graphique en C

NeoFab

la... référence? je vois pas trop ce que c'est? je sens que je vais me faire traiter de newb mais bon...

vendredi 28 février 2003 à 18:14:19 | Re : Programmation graphique en C

cedb002


la référence ou l'adresse de ton char tu est un & pour l'avoir


-------------------------------
Réponse au message :
-------------------------------

> la... référence? je vois pas trop ce que c'est? je sens que je vais me faire traiter de newb mais bon...

vendredi 28 février 2003 à 23:17:43 | Re : Programmation graphique en C

NeoFab

en fin de compte, je devrais écrire cette ligne?:

char * ecran = & ( (char) 0xA0000000L);

je dois pas avoir fait le bon truc, ca marche pas...

samedi 1 mars 2003 à 10:42:23 | Re : Programmation graphique en C

cedb002


dsl mais je vois pas trop

le seul truc que je peux te conseiller c'est d'essayer de la convertir en hexa avant.




-------------------------------
Réponse au message :
-------------------------------

> en fin de compte, je devrais écrire cette ligne?:
>
> char * ecran = & ( (char) 0xA0000000L);
>
> je dois pas avoir fait le bon truc, ca marche pas...

jeudi 17 juin 2004 à 23:09:39 | Re : Programmation graphique en C

douggyfresh

Réponse acceptée !

Me voici, je viens a votre rescousse.

J'ai rencontré ce problème lors de ma premiere connaissance avec le graphisme en c.
Il existe 3 facons de rémédier à ce problèmes:

Uno:
Si vous programmez avec Turbo C++ 3.0, vous pouvez déclarez un pointeur far vers l'addresse mémoire de l'écran comme suit :

unsigned char far *ecran=(unsigned char far *) (0xA0000000L);
//j'ai inclu unsigned char car les indices de couleurs vont de
//0 à 255
//avec char on a -128-0-128
//avec unsigned char : 0-255 qui convient mieux aux couleurs
//pour raccourcir unsigned char, creer un type
//avec typedef avec le nom dont vous voulez
//ex: typedef unsigned char byte
//donc on aura qu'a declarer d'une nouvelle facon le pointeur
//ex: byte far *ecran=(byte far *)(0xA0000000L);

Segundo : en utilisant le macro
// void far MK_FP(unsigned segment, unsigned decalage)
//qui est inclu dans dos.h

//la declaration :

unsigned char far *ecran=(unsigned char *)MK_FP(0xA000,0);

Tercero:
//en utilisant la fonction
//void pokeb(unsigned segm,unsigned offset,char valeur)
//pour initialiser l'adresse memoire de l'ecran

//Ex:

void setpixel(unsigned X,unsigned Y, unsigned char coul)
{
pokeb(0xA000,320*y+x,coul);
}

//Cette fonction placera un pixel suivant x et y

Je suis en premiere annee d'etude informatique en Haiti. Et j'aime tout ce qui est technologique et informatique(programmation , electronique)
Pour tout commentaire ou question, veuillez me contacter à l'adresse suivante :
douggynix@yahoo.fr

//j'espere que vous avez compris mes conseils et qu'il vous aide a surmonter vos peurs pour le graphisme. Jettez un mail dans ma boite


vendredi 12 août 2005 à 00:38:10 | Re : Programmation graphique en C

NeoFab

Merci pour cette réponse précise et exaustive!

( lol la question en 2003, la réponse en 2004 et le merci en 2005 ;) ...)

Neo[Fab], the Only One: www.neofab.net

samedi 13 août 2005 à 00:58:55 | Re : Programmation graphique en C

douggyfresh



douggy

Neofab,

            je te remercie tres fort du fait que tu as apporté beaucoup d'attention a mon egars. Donc, ca m'a plu beaucoup. Moi, meme j'avais oublié si j'avais mis ce message sur ce forum. Bonne chance dans la programmation graphique!!!




Cette discussion est classé dans : programmation, graphique, tuto, char, turbo


Répondre à ce message

Sujets en rapport avec ce message

bogue turbo c++ en mode graphique [ par LaFoUiN ] bon voila mon probleme : je programme beaucoup en utilisant le mode graphique avec les BGI et la bibiothéque graphic.h et depuis quelques temps a la f programmation graphique [ par theidiot ] Je cherche un bon site internet sur les mathematique matriciel car il me manque une certaine connaissance en math pour pouvoir poursuivre mon apprenti Comment debuter avec OpenGL [ par douggyfresh ] douggy Je suis un amateur de la programmation graphique en c en mode console vga. Mais, j'aimerais faire de la programmation graphique 32 bits avec o recherche informations MFC [ par MEHOUTA ] Bonjour a tous!!!  Dans le cadre d'un proje en CPOO, je doit créer la partie décor d'un jeu. Le problème c'est que je n'y connait pas grand chose en p mode graphique Turbo C [ par yosri01 ] Les amis J'espére que vs m'aidez le plus vite possible le mode graphique du Turbo C ne permet pas d'afficher du text clairement il convertit tout c Saisir un entier en mode graphique sous Turbo C [ par SurGeon1503 ] Salut j'aimer interface graphique [ par bchrist ] bonjour! je suis un debutant dans le programmation; je souhaiterais savoir s'il est possible de concevoir ou generer une interface graphique en C++. S programmation graphique en c. [ par tchak ] j'aimerais pouvoir apprendre la programmation graphique en c , mais il ya beaucoup de bibliothèques et fonctions que le compilateur(borlanC++) ne reco graphique sur turbo C [ par minouch_y ] comment changer le couleur avec C ,encadrement de texte ave C?<img src="/imgs Quelle librairies utiliser pour la programmation graphique [ par poiuytrez3 ] Bonjour,Je suis habitué à programmer en C#, mais là je me met au vrai C++ (et pas C++.net). Je me demande donc quelle librairie utiliser pour faire la


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.