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 :

appel d'idl depuis un programme C++


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut appel d'idl depuis un programme C++
    Bonjour à tous.

    Je programme en C++, mais je dois utiliser un programme que l'on m'a remis qui est lui écris en IDL. J'ai trouvé sur ce site un sujet qui ressemblait pas mal à mon problème, mais qui n'a pas suffit (il s'agit de http://www.developpez.net/forums/d34...ramme-externe/) . J'ai essayer d'écrire les commandes dans un fichier toto.idl, puis de faire system("idl test.idl") mais cela me renvoie comme erreur 'sh : idl : not found' . J'ai toutefois noté que si j'écrivais directement 'idl test.idl' dans la console, cela marchait très bien.

    En cherchant sur le site sur le lien ci-dessus, j'ai voulu tester exec, mais j'avoue ne pas avoir bien compris le fonctionnement et par conséquent, je n'ai pas réussi par ce moyen non plus. Je n’avais d'ailleurs pas vraiment d'exemples pour m'expliquer le fonctionnement, mais près un peu de réflexion, je ne suis pas vraiment sur que cela corresponde à mon problème.

    En bonus, si déjà ce premier problème est réglé, j'aurais aimer ajouter un autre problème qui se posera naturellement à la suite: IDL met du temps à s'ouvrir et je compte mettre cet appel dans une boucle. Est-il possible d'ouvrir idl avant la boucle (par exemple dans une autre console) tout en enchaînant dans la boucle les commandes pour idl et celles pour C++, afin de ne pas avoir à ouvrir et fermer idl 50 fois (enfin, sûrement bien plus) dans le programme?

    Merci d'avance

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par HDOsiris Voir le message
    J'ai essayer d'écrire les commandes dans un fichier toto.idl, puis de faire system("idl toto.idl") mais cela me renvoie comme erreur 'sh : idl : not found' . J'ai toutefois noté que si j'écrivais directement 'idl toto.idl' dans la console, cela marchait très bien.
    System fait appel à sh, et ta console fait généralement appel à bash or il ne me semble pas que sh regarde le PATH pour rechercher les commandes (à vérifier).

    Citation Envoyé par HDOsiris Voir le message
    En cherchant sur le site sur le lien ci-dessus, j'ai voulu tester exec, mais j'avoue ne pas avoir bien compris le fonctionnement et par conséquent, je n'ai pas réussi par ce moyen non plus. Je n’avais d'ailleurs pas vraiment d'exemples pour m'expliquer le fonctionnement, mais près un peu de réflexion, je ne suis pas vraiment sur que cela corresponde à mon problème.
    De mémoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execlp("idl", "toto.idl", NULL);
    Cf http://man.developpez.com/man3/exec.3.php

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse. J'ai testé, et je n'ai plus de message d'erreur (ce qui est un bon début), mais pas plus résultats... (ce qui est certes moins sympa). J'ai mis '#include<unistd.h>' en début de programme comme l'indique le lien vers les commandes exec.

    A part cela, le reste du programme marche bien, désormais.

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Est-ce que tu peux nous :
    - dire exactement ce qu'il se passe au moment de l'exécution ;
    - montrer ton code source modifier ;
    - montrer le résultat de la commande "whereis idl" dans ta console?

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Au moment de l’exécution, il ne se passe rien de particuler, cela me fait juste:
    > g++ test.cpp
    > a.out test
    sans plus de commentaire de la part de la console.

    pour whereis, j'obtiens:
    > whereis idl
    idl: /usr/share/idl
    et enfin, pour mon code source, cela fait :

    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
    #include<iostream>
    #include<fstream>
    #include<stdlib.h>
    #include<unistd.h>
     
    using namespace std;
     
    int main()
    {
      int i;
      double aa,bb,cc,dd,ee,ff,gg,hh,d,q;
     
      d=1.122965;
      q=0.042412;
     
      for (i=0;i<5;i++)
        {
          fstream test("test.idl",ios::out);
          test <<".r NOMDUFICHIER" <<endl;
          test <<"CRITICS,"<<d<<","<<q<<""<<endl;
          test <<"exit"<<endl;
          test.close();
     
          execlp("idl","test.idl",NULL);
     
     
          ofstream val("test.txt",ios::app);
          fstream read("caustics.txt",ios::in);
     
          read>>aa>>bb;
          read>>cc>>dd;
          read>>ee>>ff;
          read>>gg>>hh;
     
          val<<ee<<"   "<<bb<<endl;
          read.close();
          val.close();
     
          q=q+q/100;
        }
     
      return 0;
    }
    Sachant que caustics.txt est le fichier censé être créé par idl. De fait, ce fichier étant inchangé, j'ai le droit à cinq fois le même résultat, ce qui ne m’intéresse pas des masses.
    Je précise que j'ai testé au passage la commande execlp avec gnuplot : il m'a ouvert gnuplot mais n'y a pas exécuté les commandes que j'avais mis dans un fichier .gnu pour le test.

  6. #6
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par HDOsiris Voir le message
    Au moment de l’exécution, il ne se passe rien de particuler, cela me fait juste:

    > g++ toto.cpp
    > a.out toto

    sans plus de commentaire de la part de la console.
    ça c'est la compilation, l'exécution c'est quand tu fais le ./executable .


    Pour ton code source, pense à mettre les balises [ code] (supprime l'espace).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double aa,bb,cc,dd,ee,ff,gg,hh,d,q;
    Il vaudrait mieux que tu créé un tableau avec un nom explicite.

    Sinon, que te retourne execlp?

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Désolé, je ne suis pas spécialiste, alors pour moi, la compilation était le g++ et l’exécution le a.out . Je ne connais pas ./executable.

    Sinon, comment suis-je censé voir ce que me renvoie execlp? En le rentrant dans le terminal, j'ai eu :
    > g++ test.cpp
    > ./executable
    ./executable: Command not found.
    Pour le tableau, c'est une idée, mais est-ce que cela influe sur mon problème? Je l'ai écris comme ça, car à l'origine, je n'utilisais que deux caractères.

  8. #8
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par HDOsiris Voir le message
    Désolé, je ne suis pas spécialiste, alors pour moi, la compilation était le g++ et l’exécution le a.out . Je ne connais pas ./executable.
    Si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ main.cpp -o monExe // = compilation
    Tu lances ton programme avec ./monExe et là ce sera l'exécution de ton programme.
    Si j'ai compris, a.out serait ton exécutable (tu aurais donc rajouter '.' au PATH) et toto un paramètre ?
    Dans ce cas là, tu doit mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int main(int argc, char **argv)
    Et après vérification : argc == 1.
    Tu pourras utiliser ton paramètre : argv[0]
    Citation Envoyé par HDOsiris Voir le message
    Sinon, comment suis-je censé voir ce que me renvoie execlp?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int retour = execlp(....);
    printf("%d", retour);
    Citation Envoyé par HDOsiris Voir le message
    Pour le tableau, c'est une idée, mais est-ce que cela influe sur mon problème? Je l'ai écris comme ça, car à l'origine, je n'utilisais que deux caractères.
    Ce sera beaucoup plus lisible et ainsi plus simple pour d'autres personnes à comprendre ton code.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Alors j'ai testé ce que vous avez dit:

    J'ai trouvé que argc==2 et execlp me renvoie -1, donc erreur, si j'ai bien compris.

    Sinon, qu'est censé contenir argv? Moi, il contient mon a.out si je n'y touche pas. Mais le but est peut être d'en faire quelque chose ^^.

    Pour a.out, il semble que ce soit bien mon executable, toto.cpp (ou test.cpp de son vrai nom) est le fichier texte où je tape mon code. Désolé d'avoir emmêlé les noms, je vais tout uniformiser.

  10. #10
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Oui, c'est de ma faute, argv[0] correspond au nom du programme.
    argv[1] est ton premier argument.

    Donc pour execlp c'est : execlp("idl", "idl", "test.idl", NULL)

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Cela marche maintenant parfaitement, mais seulement avec gnuplot. Toujours pas avec idl. Autre détail, avec gnuplot, que je lançais cette opération, les autres commandes situées après la ligne de commande execlp ne se lançaient plus... Donc la commande marchait mais pas le programme.

    Sinon, avec idl, le résultat de argc reste égal à 2 et execlp me renvoie toujours -1. Par contre argv[1] me renvoie désormais 'test'.

  12. #12
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par HDOsiris Voir le message
    Cela marche maintenant parfaitement, mais seulement avec gnuplot. Toujours pas avec idl. Autre détail, avec gnuplot, que je lançais cette opération, les autres commandes situées après la ligne de commande execlp ne se lançaient plus... Donc la commande marchait mais pas le programme.
    Oui c'est normal, exec va effectuer un recouvrement, pour l'utiliser le code est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    pid_t pid = fork();
    if(pid < 0)
       ;//erreur
    else if(pid = 0) //processus fils
    {
             execlp(...);
             exit 0;
    }
    else
    {
               wait(NULL); //on attend la fin du fils.
    }
    Citation Envoyé par HDOsiris Voir le message
    Sinon, avec idl, le résultat de argc reste égal à 2 et execlp me renvoie toujours -1. Par contre argv[1] me renvoie désormais 'test'.
    Et quelle est la valeur de errno ?

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Je remet le code tel qu'il est maintenant:

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    #include<iostream>
    #include<fstream>
    #include<stdlib.h>
    #include<unistd.h>
    #include<errno.h>
    #include <sys/types.h> 
     
    using namespace std;
     
    extern int errno;
     
    int main(int argc, char **argv)
    {
      int i;
      double aa,bb,cc,dd,ee,ff,gg,hh,d,q;
     
      d=1.122965;
      q=0.042412;
     
      fstream azerty("test.txt",ios::out);
      azerty.close();
     
     
      for (i=0;i<5;i++)
        {
          fstream test("test.idl",ios::out);
          test <<".r CALCCAUSTICS" <<endl;
          test <<"CRITICS,"<<d<<","<<q<<""<<endl;
          test <<"exit"<<endl;
          test.close();
     
          execlp("idl","idl","test.idl",NULL);
     
          pid_t pid = fork();
     
          if (pid < 0)
             ;//erreur
          else if (pid = 0) //processus fils
    	{
    	  execlp("idl","idl","test.idl",NULL);
    	  exit 0 ;
    	}
          else 
    	{
    	  wait(NULL); //on attend la fin du fils.
    	}
     
          ofstream val("test.txt",ios::app);
          fstream read("caustics.txt",ios::in);
     
          read>>aa>>bb;
          read>>cc>>dd;
          read>>ee>>ff;
          read>>gg>>hh;
     
          val<<ee<<"   "<<bb<<endl;
          read.close();
          val.close();
     
          q=q+q/100;
        }
     
      cout <<argc<<"       "<<argv[1]<<"     "<<errno<<endl;
      int retour = execlp("idl","idl","test.idl",NULL);
    printf("%d", retour);
     cout<<endl;
     
      return 0;
    }
    Je ne sais pas vraiment comment utiliser errno, alors je sais pas si j'ai bien fait le truc. J'ai ajouté les lignes de code que vous m'avez transmis. J'ai obtenu avec ce code ce message d'erreur:

    > g++ test.cpp
    test.cpp: In function ‘int main(int, char**)’:
    test.cpp:40:9: error: expected ‘;’ before numeric constant
    test.cpp:44:13: error: no matching function for call to ‘wait::wait(NULL)’
    /usr/include/bits/waitstatus.h:68:3: note: candidates are: wait::wait()
    /usr/include/bits/waitstatus.h:68:3: note: wait::wait(const wait&)

  14. #14
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Pour le wait il faut inclure :
    Après il doit exister des solutions un peu plus C++.

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    J'ai toujours la première erreur à propos du ';' En gros, il me demande un ';' après le 'exit', sans 0. Pour la seconde erreur, l'ajouta réglé le problème, merci beaucoup.

  16. #16
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Comme tu es dans la fonction main, tu peux remplacer le exit 0 par un return 0.

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    J'ai essayé, mais les résultats n'ont pas été mirobolants. Par rapport au programme écrit au dessus, j'ai transformé le exit 0 en return 0, puis j'ai testé en supprimant ou non les lignes 32 et 68, pour voir, mais cela n'a pas changé grand chose. Je remarque que j'avais les même résultats en essayant de faire juste 'exit;' à la place de 'return 0;'

    Pourquoi, alors qu'il n'y a que 5 itérations demandées, je me trouve dans la console avec 32 itérations et dans le fichier créé avec 62 lignes?

  18. #18
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Dans ton code, tu fait 3 execlp est-ce normal ?

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    Je sais pas... Je me suis contenté de rajouter quand vous me le conseillait. C'est pour ça que j'ai essayé de retirer celui de la ligne 32...

  20. #20
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 11
    Points : 1
    Points
    1
    Par défaut
    En tant que logiciel licencié, est-ce que je peux faire appel à IDL? Je commence de plus en plus à douter...

Discussions similaires

  1. appel de pthread depuis un programme C
    Par Ben2903 dans le forum C
    Réponses: 3
    Dernier message: 17/08/2012, 09h24
  2. [D7] Appeler ShutDown.EXE depuis un programme.
    Par bvsud dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 16/10/2009, 21h51
  3. Réponses: 20
    Dernier message: 08/09/2006, 10h55
  4. Réponses: 4
    Dernier message: 01/06/2006, 15h55
  5. Réponses: 4
    Dernier message: 01/05/2006, 14h37

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