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

Windows Discussion :

Création d'un .a


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut Création d'un .a
    J'ai besoin d'intégrer des .LIB a un progremme que je consoit avec MingW. Le probleme c'est que MingW n'aime pas du tout les .LIB. Existe t-il donc un moyen de transforùmer mon .LIB en .a.

    Merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    C'est quoi comme type de .lib ? Il vient d'où ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Bon en faite j'ai eu un probleme avec certaine fontion que mingw ne connassait pas j'ai donc créer des lib grace a TURBO C.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Et bien recompiles les avec MingW.
    Turbo C est un compilateur DOS 16 bits, je me demande si tu n'essaye pas de faire utiliser à un compilateur Windows 32 bits des fonctions spécifiques à DOS. Dans ce cas, oublie de suite...

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Ba je ne pense pas qu'elle soit specifique a DOS mais bon je peux me tromper (il s'agit des fonctions outport inport etenable disable interrupt....

    Si cela ne macrhe pas je peux essayé decréer ma lib avec visual C mais le soucis restera le meme pour la lib.

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 578
    Points
    41 578
    Par défaut
    toutes les fonctiosn que tu viens d'énumérer sont spécifiques DOS et ne marcheront jamais sous XP à moins d'être dans un driver...

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Le problème c'est que j'utilise Windows 98. Mais avec le compilateur MingW .... Autre problème, Je n'arrive pas à inclure GTK sous turbo C.

    Si vous pouviez m'aider à résoudre un de ses problèmes se serait sympa.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3

  9. #9
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Mais j'ai essayé ca il ne me met plus du tout de problème pour _outp et _inp, disable, enable marche aussi.

    Mais les fonctions setvect, getVect etc... sont vraiment mais vraiment chiante... Il y a meme des attribut ptr ou IrqVect qu'il ne reconnait plus du tout (contrairement a turbo C qui les reconnait (ce que je ne comprend pas c'est que les fonctions existe dans DOS.h)

    C'est pour ca que j'avais pensé créer une librairie à partir de Turbo C.

  10. #10
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    Les vecteurs d'interruption sont un concpet lié à l'architecture 16 bits. Ca a totalement disparru de la programmation classique 32 bits. Il n'y a pas d'équivalent simple. Que veux-tu faire ?

  11. #11
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Ba j'aimerai faire compiler certain driver ... Bon pour etre précis on nous a demander de créer un programme qui pilote une carte d'acquisition (sur port ISA (c'est pas du matos super récent donc)) avec du graphisme (GTK). On nous a donner des driver (2 .c et 1 .h si tu veux je peux te les envoyer ....).

    Le probleme c'est que ces drivers utilisent les dites fonctions.

    Au début notre professeur voulait que nous utilisions MingW mais vu les gros soucis avec les drivers ils veux bien que l'on travaille sur turbo C qui compile (plus ou moins bien) les drivers.

    Donc Voila le probleme si j'utilise MingW les drivers ne marchent pas(toutes les Interruptions IRQ). ET si j'utilise Turbo C je ne sais pas comment utiliser GTK (toute l'IHM est prete).

  12. #12
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    J'ai peur que ton prof soit à côté de la plaque
    Ton driver est un driver DOS, ne pouvant être utilisé que dans un programme DOS.
    MingW est un compilateur Win32, et donc pas DOS du tout.
    GTK, à ma connaissance, n'existe pas sous DOS. Y'a un port pour Win32, mais rien pour DOS.
    Donc, c'est mal parti.
    Une solution de bricolage de secours, ça pourrait être, si les programmes TurboC permettent d'utiliser la carte, de développer ces derniers en DOS/TurboC donc, et de développer à coté des programmes GTK/MingW qui les lance de "manière cachée". On appelle ça un front-end graphique. Quand tu cliquerais sur un bouton GTK, le code derrière lancerait une exécution d'un programme Turbo C qui va bien. C'est une idée...

  13. #13
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    EN faite on à expliquer au prof le soucis et bon ... il y avait pas vraiment penser. Pour le moment vu que le river doit etre fonctionnelle avec tous sauf les IRQ on va tester toussauf les IRQ ). SI déja ca ca marche ce serait bien. Je vais ereflechir chez moi a ta solutionqui me semble bonne (bien que super dur (je pense))

    Merci beaucoup

  14. #14
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Bon ca devient de pire en pire en faite je n'arrive pas à utiliser les fonctions inp et outp ... Je peux entrer ce que je veux il me renvoi obstinément 255 ... Donc je vais chercher autre chose, on m'avait parler de createFile etc ... et je sais déja plus ou moins les utiliser le soucis c'est de savoir comment trouver le nom de la carte Isa (pour les port serie c COM1 .... etc mais pour un port Isa j'en sais rien ...)


    Voila désolé d'avoir un pei déraper du sujet initial et si il faut que je recréer un sujet dite le moi par mp et je le ferai .

    Merci encore.

  15. #15
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    ISA ce n'est pas un port de communication, c'est un bus matériel. Oublie CreateFile, car le nom que tu passes c'est celui d'un driver (associé à ton périphérique), et là, si j'ai bien compris, tu n'en n'a pas.
    inp / outp ça utilise les instructions assembleur in / out qui lisent / écrivent sur les IO port. Peut être que tu lis pas au bon endroit, que tu n'a pas écris ce qu'il fallait avant, etc... Faut potasser la documentation technique de ta carte.

  16. #16
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    BA moi je demande pas mieux ... Dans la partie de mes drivers ou il y avait outpor tet inport j'aiajouter les lignes que tu a montré et j'ai remplacé les inport par des _inp et pareil pour outport (donc ma question ets de savoir si il existe une reele difference entre ce qu on doit passer en argument avec outp et ce qu'on doit passe avec outport (idem pour inp et inport)

  17. #17
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    A priori non, y'a que la taille de ce qui est lu / écrit qui peut varier (_inp, _inpw, _inpd...). C'est quoi le prototype de outport dans Turbo C ?

  18. #18
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Voila les .c du driver (qui fonctionne sur turbo c ) et que je dois utiliser sous MingW

    le .h
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
    #define ADR1    0x330                     /* adr. carte partie AD */
    #define ADR2    0x340                     /* adr. carte partie IO */
    
    #define IOIN    0
    #define IOOUT   0
    #define MULPLEX 1
    #define COUNT0  0
    #define COUNT1  1
    #define COUNT2  2
    #define TIMER   3
    #define ADHIGH  4
    #define ADLOW   5
    #define STARTAD 6
    #define UPDDA   7
    #define DA1LOW  4
    #define DA1HIGH 5
    #define DA2LOW  6
    #define DA2HIGH 7
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    void far initdrvad(int adr1, int adr2);
    void far setadr(int adr1, int adr2);
    void far setpolar(char pol);
    void far setchanel(int ch);
    void far setda1(unsigned int value);
    void far setda2(unsigned int value);
    void far outputio(unsigned char value);
    void far setbit(int bit, int value);
    unsigned int far inputio(void);
    
    #ifdef __cplusplus
    }
    #endif
    
    #endif
    et le .c

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include "ad.h"
    
    static char PCMES3_current_polar = 0;
    static int  PCMES3_current_chanel = 0;
    static unsigned int  PCMES3_current_out;
    static unsigned int  PCMES3_current_da1, PCMES3_current_da2;
    static unsigned int  PCMES3_adr1, PCMES3_adr2;
    
    void far initdrvad(int adr1, int adr2) {
      PCMES3_adr1 = adr1;
      PCMES3_adr2 = adr2;
      outputio(0);
      setda1(0);
      setda2(0);
    	setpolar('U');
      setchanel(0);
    	}
    
    void far setadr(int adr1, int adr2) {
    	PCMES3_adr1 = adr1;
      PCMES3_adr2 = adr2;
      }
    
    void far setpolar(char pol) {
      if ((toupper(pol) == 'U') || (toupper(pol) == 'B')) {
         PCMES3_current_polar = ((toupper(pol) == 'U') ? 1 : 0);
         outportb&#40;PCMES3_adr2+MULPLEX,&#40;PCMES3_current_chanel << 1&#41; | PCMES3_current_polar&#41;;
    		 &#125;
      &#125;
    
    void far setchanel&#40;int ch&#41; &#123;
    	if &#40;&#40;ch >= 0&#41; && &#40;ch <= 7&#41;&#41;
        outportb&#40;PCMES3_adr2+MULPLEX,&#40;&#40;PCMES3_current_chanel = ch&#41; << 1&#41; | PCMES3_current_polar&#41;;
      &#125;
    
    static void PCMES3_update_da&#40;unsigned int da1, unsigned int da2&#41; &#123;
    	outportb&#40;PCMES3_adr1+DA1LOW, da1 & 0x00FF&#41;;
    	outportb&#40;PCMES3_adr1+DA1HIGH, da1 >> 8&#41;;
    	outportb&#40;PCMES3_adr1+DA2LOW, da2 & 0x00FF&#41;;
    	outportb&#40;PCMES3_adr1+DA2HIGH, da2 >> 8&#41;;
    	inportb&#40;PCMES3_adr1+UPDDA&#41;;
    	&#125;
    
    void far setda1&#40;unsigned int value&#41; &#123;
    	PCMES3_update_da&#40;&#40;PCMES3_current_da1 = value&#41;, PCMES3_current_da2&#41;;
    	&#125;
    
    void far setda2&#40;unsigned int value&#41; &#123;
    	PCMES3_update_da&#40;PCMES3_current_da1, &#40;PCMES3_current_da2 = value&#41;&#41;;
      &#125;
    
    void far outputio&#40;unsigned char value&#41; &#123;
      outportb&#40;PCMES3_adr2+IOOUT,&#40;PCMES3_current_out = value&#41;&#41;;
      &#125;
    
    unsigned int far inputio&#40;void&#41; &#123;
      return inportb&#40;PCMES3_adr2+IOIN&#41;;
      &#125;
    Voila j'ai essayé d'utiliser outp et inp (meme inpw et outpw. Le probleme c'est que j'obtiend quelque chose de fou ... et surtout que je commence à être fatiguée de ce projet

    Désolé pour tous le code j'ai essayé de le diminuer un maximum.

  19. #19
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 753
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 753
    Points : 10 704
    Points
    10 704
    Billets dans le blog
    3
    Par défaut
    L'équivalent de inportb / outportb est bien _inp et _outp.
    La seule chose qui varie ensuite c'est la taille des int. Tu peux remplacer tous tes int (issus du code de Turbo C) par des short, mais je ne pense pas que ça change quelque chose.

  20. #20
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 29
    Points : 7
    Points
    7
    Par défaut
    Bon je vais remplacé mais le meme programme (avec inp a la place de inport ne marche pas pareil .... mais bon je vais essayer et je vous diré quoi ... (marre de ce projet ... )

Discussions similaires

  1. Classe pour la création d'un graphe xy
    Par Bob dans le forum MFC
    Réponses: 24
    Dernier message: 03/12/2009, 17h20
  2. Création dynamique de TImages
    Par Dric dans le forum C++Builder
    Réponses: 10
    Dernier message: 08/07/2002, 12h36
  3. [Kylix] Création d'un fichier lien
    Par DrQ dans le forum EDI
    Réponses: 2
    Dernier message: 14/05/2002, 21h30
  4. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 16h04

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