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

C Discussion :

dos.h et mingw


Sujet :

C

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut dos.h et mingw
    Bonjour,

    voilà je dois faire un exercise et pour celà je dois utiliser dos.h, problème code blocks et mingw ne disposent pas de cette librarie, comment faire pour l'inclure.

    merci

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par exhortae Voir le message
    voilà je dois faire un exercise et pour celà je dois utiliser dos.h, problème code blocks et mingw ne disposent pas de cette librarie, comment faire pour l'inclure.
    Je fatigue... depuis le temps, tu n'as toujours compris la différence entre un fichier d'entête (interface : .h) et une bibliothèque (implémentation : .a, .lib).

    Ta question n'a aucun sens. MinGW est un compilateur pour Windows en mode x86 32-bit protégé, alors que <dos.h> est un vestige de la glorieuse époque de MS-DOS (mode x86 16-bit réel) des années 80, fourni par Borland (et peut être Microsoft, je ne sais plus)...

    Pourquoi ce mélange contre nature ? Que veux-tu faire exactement ?

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Je fatigue... depuis le temps, tu n'as toujours compris la différence entre un fichier d'entête (interface : .h) et une bibliothèque (implémentation : .a, .lib).

    Ta question n'a aucun sens. MinGW est un compilateur pour Windows en mode x86 32-bit protégé, alors que <dos.h> est un vestige de la glorieuse époque de MS-DOS (mode x86 16-bit réel) des années 80, fourni par Borland (et peut être Microsoft, je ne sais plus)...

    Pourquoi ce mélange contre nature ? Que veux-tu faire exactement ?
    Bonjour,

    J'ai de la doc sur le net qui traite de header et librairies, je vais lire tout ça ce soir (oui jusqu'ici j'avais fais l'impasse sur ça et c'est encore assez flou ces histoires dans ma tête)

    au niveau de dos.h, c'est pour mon cours d'histoire (euh je veux dire algo complexe ), on a du travail à faire qui utilise dos.h (bien sûr je peux remplacer les fonctions à utliser par celle de windows.h) mais le prof n'aime pas ça (à tort). Et moi j'ai aucune envie de programmer sous turbo C (cet éditeur qui me fais regretter mon écran 14'' 320*200).

    Merci

  4. #4
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par exhortae Voir le message
    au niveau de dos.h, c'est pour mon cours d'histoire (euh je veux dire algo complexe ), on a du travail à faire qui utilise dos.h (bien sûr je peux remplacer les fonctions à utliser par celle de windows.h) mais le prof n'aime pas ça (à tort). Et moi j'ai aucune envie de programmer sous turbo C (cet éditeur qui me fais regretter mon écran 14'' 320*200).
    Il n'y a qu'une alternative :
    • installer Turbo C et suivre les consignes du prof (TC sous Windows XP, ça marche et ce n'est pas si laid en mode fenêtré).
    • Trouver une parade avec les outils modernes. Quelles sont les fonctions de <dos.h> dont tu as besoin ?

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Il n'y a qu'un alternative :
    • installer Turbo C et suivre les consignes du prof (TC soius Windows XP, ça marche et ce n'est pas si laid en mode fenêtré).
    • Trouver une parade avec les outils modernes. Quelles sont les fonctions de <dos.h> dont tu as besoin ?
    gettime () que j'ai déjà remplacée par QueryPerformanceCounter(), mais bon le souci c'est que le jour où je passe l'exam et qu'on me demande de programmer sur TC, je suis dans la mouise.

    Je vais installer windows XP sur machine virtuelle, ça sera la meilleure solution pour pas se planter le jour de l'exam

    Merci à toi et bonne année

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par exhortae Voir le message
    gettime () que j'ai déjà remplacée par QueryPerformanceCounter(), mais bon le souci c'est que le jour où je passe l'exam et qu'on me demande de programmer sur TC, je suis dans la mouise.
    time() est standard... struct tm, localtime() ... <time.h>

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    J'ai vu que time.h déclare une structure timespec avec possibilité d'avoir des valeurs de l'ordre de la nano seconde. Mais comment prendre le temps à un instant t, puis prendre le temps à un instant t + 1, pour faire la différence, et obtenir une durée de l'ordre de la nanoseconde.

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par exhortae Voir le message
    J'ai vu que time.h déclare une structure timespec avec possibilité d'avoir des valeurs de l'ordre de la nano seconde. Mais comment prendre le temps à un instant t, puis prendre le temps à un instant t + 1, pour faire la différence, et obtenir une durée de l'ordre de la nanoseconde.
    Laisse tomber. C'est pour être compatible avec unix. C'est pas portable, et la nanoseconde sous Windows, j'y crois pas...

    Tu veux faire quoi exactement ?

  9. #9
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Laisse tomber. C'est pour être compatible avec unix. C'est pas portable, et la nanoseconde sous Windows, j'y crois pas...

    Tu veux faire quoi exactement ?

    tester la complexité temporelle de différentes fonctions de tri, j'avais déjà fais un essai, et au final je m'étais résolu à utiliser windows.h qui marchait bien, mais c'était sans compter le retour de dos.h et turbo C 2.0 , on est en 2007 et à l'école il peuvent toujours pas se résoudre à laisser tomber cet IDE, (surtout quand je pense que code blocks est gratuit en plus.)

  10. #10
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par exhortae Voir le message
    tester la complexité temporelle de différentes fonctions de tri,
    Alors c'est clock() et CLOCKS_PER_SEC qu'il faut utiliser : c'est standard et c'est fait pour. Si la précision est insuffisante (55 ms), multiplier les tests (boucles).

  11. #11
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Oui c'est parfait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <limits.h>
    #include "tri.h"
    #include "tableau.h"
     
    #define MAX 32000
     
    int main(void)
    {
        int *tab = NULL;
        clock_t debut;
        clock_t fin;
        double duree;
     
        tab = initialiser_tableau (tab, MAX);
     
        debut = clock ();
     
        tri_bulle (tab, MAX);
     
        fin = clock ();
     
        duree = (double)(fin - debut) / CLOCKS_PER_SEC;
     
        printf ("%lf", duree);
     
        return 0;
    }

    3.198000
    Process returned 0 (0x0) execution time : 3.214 s
    Press any key to continue.


    Merci

  12. #12
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Petit problème lorsqu'on passe sous turbo c 2.1, CLOCKS_PER_SEC n'est pas définie même en ayant pris soin d'inclure time.h, et j'ai pas trop envie de faire un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define CLOCKS_PER_SEC 1000000

  13. #13
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par exhortae Voir le message
    Petit problème lorsqu'on passe sous turbo c 2.1, CLOCKS_PER_SEC n'est pas définie même en ayant pris soin d'inclure time.h,
    C'est normal, c'est une compilateur 'pre-ANSI'. CLOCKS_PER_SEC n'était pas défini (J'utilise Borland C++ 3.1 pour tester ton code, désolé, je n'ai pas plus ancien).

    Tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #ifndef CLOCKS_PER_SEC
    #define CLOCKS_PER_SEC 18.2
    #endif
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #include <time.h>
    #ifndef CLOCKS_PER_SEC
    #define CLOCKS_PER_SEC CLK_TCK
    #endif

  14. #14
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    Reprends moi si je me trompe mais dans ce cas là je peux directement faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      /* duree en secondes */
       duree = (float) (fin - debut) / CLK_TCK;
    non ?

    et si jamais un jour t'en a besoin (vu qu'il est devenu gratos)

    http://dn.codegear.com/article/20841

  15. #15
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 293
    Par défaut
    OKi je viens de comprendre le coup du ifndef def

    c'est au cas ou le CLOCKS_PER_SEC n'est pas défini il utilise CLK_TCK, ouais c'est mieux ça.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 17h38
  2. Sac à dos
    Par JeanRaviol dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 21/11/2002, 12h18
  3. convertir un nom long (win32) en format dos (8+3)
    Par kylekiller dans le forum Langage
    Réponses: 2
    Dernier message: 30/08/2002, 14h34
  4. Masquer le curseur en mode MS-DOS
    Par Alex120 dans le forum C
    Réponses: 2
    Dernier message: 10/07/2002, 10h30
  5. Format d'un exe pour DOS et pour Windows
    Par Alfhiger dans le forum Assembleur
    Réponses: 4
    Dernier message: 12/06/2002, 12h57

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