c koi "la memoire ne peut pas etre read"??? - Programmation
Marsh Posté le 10-06-2001 à 19:02:04
T'es sous windows 2000 ou NT? L'adresse memoire 0xfffffh n'existe pas tu as clairement un access memoire qui foire a mon avis il refuse de faire l'interruption sous windows NT c'est surement protege a cause du mode processeur protege! Mais c'est peut etre pas ca du tout. Essaye sous dos si tu en as l'occasion!
Marsh Posté le 10-06-2001 à 19:09:58
oui je suis sous 2000 . le mode protege tu dis?
je v ller jeter un coup deuil de ce cote la....
mais avc un compil assembleur qd y a ke de lassembleur ca marche ca....
Marsh Posté le 10-06-2001 à 19:28:03
Le mode protege oui : sous windows (enfin je crois) le processeur passe en mode protege(32bits) et la y a normalement plus d'interruption ...
Mais ton truc marche sous 2000 avec un compilo assembleur?
Marsh Posté le 10-06-2001 à 19:30:17
oui! c ca ki menbete!
Marsh Posté le 10-06-2001 à 19:38:50
oublie ce que je viens de te dire c pas faux mais c'est pas la qu'est le bleme. Tu peux pas appeller ta fonction(enfin module) asm depuis le c?
Marsh Posté le 10-06-2001 à 19:39:54
sous 9x,NT, 2k t'est toujours en mode protege.
Les interruptions continuent d'exister mais sont seulement emules (simules) par le systeme pour garder la compatibilte avec les vieilles applis. Passer en mode graphique n'a par contre pas de sens, t'es deja en mode graphique d'ailleurs si mes souvenirs sont bons c'etait int 10h et pas 12h pour passer en mode graphique et n'a de sens que si t'execute ton prog sous dos.
Utilise donc plutot l'api win32 pour faire des zolis dessins.
Marsh Posté le 10-06-2001 à 19:41:51
ben oui je peux lappeler....
et comment on sen sert de cette api win32??
Marsh Posté le 10-06-2001 à 19:44:47
Bien vu wpk pour le mode graphique j'y avais pas pense et en reflechissant c'est vrai que on est en protege sous windows 9x aussi. Ben le plus simple serait d'utiliser Delphi ou C++ Builder.
Marsh Posté le 10-06-2001 à 19:46:04
visual c++
Marsh Posté le 10-06-2001 à 19:51:13
ben pas si cuit ke ca....
enfin keske tendends par "tout cuit"?
Marsh Posté le 10-06-2001 à 19:51:19
ouep vc++ c'est parfait, par contre avec juste le c tu va avoir un choc. Utilise plutot les mfc : tu utilise le wizard pour te creer un petit projet dialog -> ca va creer un fenetre ou tu va pouvoir dessiner a souhait.
Marsh Posté le 10-06-2001 à 19:52:14
je regarde ca tt de suite
Marsh Posté le 10-06-2001 à 19:58:30
oula je comprends rien.... moi ce ke je veux c programmer un pong, g besoin d'une fonction... afficher un pixel! la je my perds....
Marsh Posté le 10-06-2001 à 20:04:39
T'es oblige de faire ca sous windows ? Euh tu peux jouer avec directx mais pour un png c un peu lourd ...
Marsh Posté le 10-06-2001 à 20:05:58
excuse moi den revenir a ma question mais y a un moyen que ca marche??
Marsh Posté le 10-06-2001 à 20:10:12
Hehe je sais pas ! peut etre en appelant le module asm depuis windows si tu dis que ca marche quand tu joues juste avce de l'asm.
Marsh Posté le 10-06-2001 à 20:13:31
?(desole je suis pas un superpro)
Marsh Posté le 10-06-2001 à 20:30:02
bon, si t'as pas envie de te faire chier avec windows, essaye l'asm, tu l'as la liste de toutes les interruptions ? parce que pour passer en mode graphique, il suffit pas d'appeller l'int 10h, faut aussi fournir le mode que tu desire dans eax.
Marsh Posté le 10-06-2001 à 20:35:48
Citation : |
juste pour passer en mode graphique, je crois que eax suffit, ensuite ca se complique un peu (s'il se contente de du mode 13h ca devrait aller sinon...)
Marsh Posté le 10-06-2001 à 20:47:12
Heu je parlais des codes d'erreur ou success en retour mais je me souviens plus des registres utiles ca fait longtemps
Marsh Posté le 10-06-2001 à 20:52:31
en asm avec mon compilo dos, ca marche, mais c avec vc++ que ca deconne.
sinon, y a pas moyen de linker le prog en c avec le fichier obj ke g cree en asm tout cour ou un truc comme ca?
me servir de mon .obj comme dune librairie quoi!
Marsh Posté le 10-06-2001 à 20:57:27
ca j'ai su le faire avec du Pascal mais je me rapelle plus du tout . Tu dois surement declarer ta fonction ams comme externe en c et linker les 2 obj. a mon avis
Marsh Posté le 10-06-2001 à 21:08:53
ca m'a l'air complexe tout ca... la declare externe? kesdonc?
Marsh Posté le 10-06-2001 à 21:14:31
Laisse tomber l'ASM, plus personne ne l'utilise sur PC (sauf quelques mordus).
Marsh Posté le 10-06-2001 à 21:16:57
Verdoux a immensement raison mais bon :
extern int mafonction(int,int);
Marsh Posté le 10-06-2001 à 21:21:31
moui et je mets koi ds ma fonction por kil me renvoie a ma fonction de changement de mode?
Marsh Posté le 10-06-2001 à 21:33:34
ben en c tu appelle cette fonction externe come une fonction normale mainteannt ya des blemes avec les retour de parametre et je m'y connais pas tres bien en asm donc j'en sais pas plus!
Marsh Posté le 10-06-2001 à 18:56:43
qd je veu passer en mode graphique (dans de lassembleur dans du c) g lerreur:
linstruction a Ox00401038 emploie ladresse memoire Oxffffffff. la memoire ne peut pas etre read.....
pourkoi?
voila le source:
#include <iostream.h>
void main (void)
{
__asm
{
int 12h
}
}
---------------
Do you serve a purpose,Or purposely serve?