IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Mémoire insuffisante sous Dos


Sujet :

Langages de programmation

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut Mémoire insuffisante sous Dos
    Je programme (ou plutôt je me donne l'illusion de programmer) en Qbasic.
    C'est peut-être le langage le plus simple mais j'ai déjà beaucoup de mal.
    Par exemple : je dimensionne 5 tableaux d'entiers (4 de 160*100 et un de 116*126). Et là, "MEMOIRE INSUFFISANTE", m'explique gentiment le compilateur.
    Qu'est-ce que j'ai fait pour mériter ça? (en plus je veux en dimensionner encore 15 comme-ça).
    Pourquoi tu veux tant de tableaux, allez-vous me demander.
    C'est pour contenir des images (des textures pour un jeu).
    En plus, j'en ai bavé, mais maintenant, je les ai dessinnées, et affichées, ces textures.
    Mon ordi dispose de 64 megaoctets de ram, dixit le constructeur.
    Bon, je sais qu'il y a différents modèles de mémoire et que Qbasic utilise tel ou tel modèle ou je ne sais quoi. :
    Justement, c'est ça que je voudrais qu'on m'explique.
    Je pourrais aussi essayer de programmer en C mais là, il faudrait que je m'améliore beaucoup.
    Je voudrais savoir aussi comment on crée et utilise une ou des librairies ou bibliothèques en Qbasic et en C. On en parle tout le temps, mais je ne sais même pas la différence entre les deux.

    Merci beaucoup pour vos réponses futures.

  2. #2
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    Salut,

    A l'epoque ou je programmais en QBasic, il fallait passer en mode dos. Et la on etait limite non plus a 16, 32, ou 64 Mo de RAM, mais au 640 Ko de base du systeme DOS, auxquels il fallait encore soustraire la place occupee par l'OS, les programmes residents, et le prog QBasic lui-meme. Ce qui fait qu'il ne reste plus trop de place a la fin. Surtout si l'on essaie de bosser sur des images...

    Les modeles de memoire, je crois que c'est en C. Il existe tiny, small, medium, large et huge, ou des trucs comem ca ? Ca concerne justement la quantite de memoire allouee au programme. Evidemment, pour un prog avec des images, il vaut mieux utilisrr le plus large possible.

    En fait, si tu veux bosser avec des images facilement, je te conseillerais de changer de langage. Le QBAsic est assez limite, et le C ne dispose pas de bibliotheque standard toute prete pour afficher des images. Je te conseilelrais Java, qui te permet assez vite de charger et d'afficher des images, sans toute la cuisine "charger fichier, creer image en memoire, transferer image dans la memoire video ...".

    Voila, bon courage

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut
    Mais ça veut dire que sous dos, tout le reste de la mémoire (celle qu'utilise windows par exemple) reste vierge à attendre en vain qu'on y mette des données? Et que dans Dos, il n'y a pas moyen de l'utiliser?
    Parce-que moi, j'utilise un 386 pour la prog, alors je suis pas sûr que Java tourne dessus! Enfin, je peux de temps en temps utiliser celui avec lequel je suis en train de taper un message, mais c'est plus dur...
    Je regarde quand-même un peu Java.

    Au fait, qu'est-ce qu'un Dos extendeur? ça ne permettrait pas d'accéder qu'est la mémoire d'au-delà 640k?

    Je ne mets pas encore le tag [résolu] mais je dis merci à kangourou!

  4. #4
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    Salut,

    effectivement, ca veut dire que toute la memoire est quasi-indisponible avec un DOS normal.
    Deux solution pour contourner ce probleme :
    - soit utiliser un extender de memoire, qui te permet donc d'acceder a la memoire au dela des fatidiques 640 Ko. Je coris qu'il y en a un qui etait fourni avec Windows 3.1, car il utilisait la memoire au dela des 640 Ko. Pour les jeux, c'est Dos4gw qui etait souvent utilise. A mon avis, c'est la meilleure solution.
    - soit passer en mode 'reel". C'est une possibilite presente a partir des 386, qui te permet d'utiliser 4 Go de RAM (je crois). C'est le principe utilsie par W95 et suivants. Le probleme, c'est que DOS ne tourne pas dans ce mode, et qu'il faut tout reprogrammer tout seul.

    Enfin, bon courage, quand meme, parce que la gestion memoire en 32 bits, c'est quand meme beaucoup plus souple ...
    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut J'ai pas le niveau
    soit passer en mode 'reel". C'est une possibilite presente a partir des 386, qui te permet d'utiliser 4 Go de RAM (je crois). C'est le principe utilsie par W95 et suivants. Le probleme, c'est que DOS ne tourne pas dans ce mode, et qu'il faut tout reprogrammer tout seul.
    Le problème : Je n'ai en fait même pas le niveau pour trouver un dos extendeur gratuit sur internet alors pour reprogrammer tout seul... RDV dans un siècle! Par contre, une fois que j'aurai trouvé un dos extendeur (à force de perséverer, j'y arriverai), il faudra que je le démarre, l'inclue ou un truc dans ce genre...
    Pour vous donner des exemples :
    J'ai éssayé d'installer Allegro, Future.lib, les unités en Pascal et même ( ) des trucs que j'ai éssayé de faire moi-même, tous (sauf la dernière catégorie) avec succès mais dès qu'il s'est agi de les inclure, j'ai été gratifié de :
    "Fichier non trouvé", "Erreur de $Directive" ou "File xxxxx.xxx no found"!
    Je n'ai jamais compris où était l'erreur, malgré mes nombreuses et infructueuses recherches.
    Enfin, si j'y arrive, c'est promis, je mettrai [résolu].
    En tout cas, merci, Kangourou.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2003
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2003
    Messages : 76
    Points : 87
    Points
    87
    Par défaut
    J'ai trouvé dos4Gw mais pour le moment, je ne sais pas le faire fonctionner.

Discussions similaires

  1. commande sous DOS
    Par zorian dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 27/04/2004, 11h21
  2. Réponses: 13
    Dernier message: 07/04/2004, 14h25
  3. Réception sur le port série sous DOS avec Borland V3.0
    Par jackyjacky dans le forum Autres éditeurs
    Réponses: 24
    Dernier message: 19/03/2004, 23h18
  4. sous DOS, rebooter la machine
    Par jbat dans le forum C
    Réponses: 12
    Dernier message: 03/11/2003, 09h44
  5. Quel etait le secret de Rapid File, la bdd sous DOS
    Par Robert A. dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 27/05/2003, 04h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo