CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Problème en C

maider
maider
Niveau 4
20 février 2005 à 19:01:53

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

apparament d´après mon compilateur je n´ai pas le droit de faire cela, et pourtant j´ai besoin d´un pointeur sur ma mémoire vidéo qui est située à cette adresse, comment je peux faire?

LGV
LGV
Niveau 28
20 février 2005 à 20:05:21

ça, ça marchait en mode 13h, ou mode X, ou VGA, ou . .. bref, y´a longtemps ! ( je faisais ça en asm y´a 10 ans :) )

ajd tu n´es plus du tout autorisé à procéder de la sorte. Oublies l´acces direct à la mémoire vidéo : ça ne marche plus de la sorte depuis plusieurs années. Passes pas une API graphique de plus haut niveau.
Si tu y tiens vraiment, boot en mode réel ; mais c´est vraiment contraignant :/

thesuperbest
thesuperbest
Niveau 8
20 février 2005 à 20:08:00

Ton projet est bien en mode MS-DOS 16 bits ?

thesuperbest
thesuperbest
Niveau 8
20 février 2005 à 20:09:26

Et puis je pense qu´il faut plutôt mettre ça : char *ecran=(char*)0xA0000000;

JeanYvesYves
JeanYvesYves
Niveau 10
20 février 2005 à 20:12:38

:oui: utilise une lib graphique actuelle
tu n´auras pas de limitations de mémoire conventionnelle et mémoire haute, et, de plus, tu pourras profiter des accélérations de ta carte, ce que le mode 13 ne sait pas faire.

LGV
LGV
Niveau 28
20 février 2005 à 20:13:31

16 bits n´est pas le pb ( d´ailleurs ce pointeurs aurait du mal à passer en 16 bits..). De plus, l´adresse que tu cherches est 0A000:0000 et non pas 0A0000000 ; c-a-d une combinaison segment:offset qui servait à simuler de l´adressage 20 bits il y a de cela fort longtemps.

thesuperbest
thesuperbest
Niveau 8
20 février 2005 à 20:17:05

Programmation graphique en C :

http://perso.numericable..fr/~fvirtman/info/cgraph.html

LGV
LGV
Niveau 28
20 février 2005 à 20:47:14

non... " programmation graphique A L´ANCIENNE en C" ( et en n´importe quoi d´autres aussi d´ailleurs).

Si tu distribues un prog utilisant ça à n´importe qui, il va tenter de le lancer sous win32, et ça va inexorablement crasher salement ; sans compter que les interruptions matérielles sont pour certaines desactivées par l´OS de nos jours. Si tu précises qu´il faut booter en mode reel, personne ne fera l´effort de tester ton programme...

Enfin, si certains veulent continuer à s´obstiner, c´est leur probleme. Mais apprendre CA ne servira à rien ( si ce n´est, pour le principe), et pour faire qqch de propre il te FAUT passer par des choses de plus haut niveau.
Maintenant si c´est juste pour toi et t´amuser un peu avec ce mode, pourquoi pas...

JeanYvesYves
JeanYvesYves
Niveau 10
20 février 2005 à 20:49:00

faut que je remette a jour cette page...

" En attendant de mieux connaitre la programmation Windows"
--> ça fait maintenant qq temps que je connais la prog Windows. C´est mon défaut ça, laisser moisir les pages plus au gout du jour...

lord_kalipsy
lord_kalipsy
Niveau 10
20 février 2005 à 20:56:41

Je me demandais si il était possible de " créer" sa propre lib graphique ( comme DX ou OGL ) ? Les fonctions DX sont hardcodé dans la carte graphique ou non ? ( C´est pas que j´ai l´intention de la faire, mais je me demandais . ... )

JeanYvesYves
JeanYvesYves
Niveau 10
20 février 2005 à 20:58:17

ben en fait, les cartes graphiques contiennent des accélérations typiques pour chacune de ces 2 libs.

Il est peut etre possible d´en écrire d´autres, mais je ne suis pas sur que ça puisse utiliser les ressources matérielles correctement, ou alors il faut etre doué.

Et puis il faut savoir que plus tu " descends" plus tu risques de te faire envoyer chier par l´OS qui va te dire " touche pas a ça malheureux ! !"

lord_kalipsy
lord_kalipsy
Niveau 10
20 février 2005 à 21:01:37

Oui, mais dans le cas de l´OS dev, tu peux faire ta propre lib ?

maider
maider
Niveau 4
20 février 2005 à 23:46:28

Merci mais ca m´aide pas ca, je veux juste savoir pourquoi au moment de compiler ca ne passe pas?
:char *ecran=(char*)(0xA0000000L);
j´ai même essayé vos suggestions mais j´ai toujours la même erreur de compilation,
:"cannot cast from ´unsigned long´ to ´*char´ " c´est toujours la même chose...

JeanYvesYves
JeanYvesYves
Niveau 10
21 février 2005 à 00:07:15

es tu allé sur la page que te donne Thesuperbest ?
ça t´explique la base de la prog en mode 13h, et tu as la ligne qui marche dessus...

Cependant, comme on te disait, quand tu l´auras compilé, tu te feras envoyer chier au moment de l´execution, car les compilos actuels fonctionnent en mode protégé, et qu´il faudrait compiler ça en mode réel.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment