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

MFC Discussion :

[MFC]MultiThreads


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut [MFC]MultiThreads
    Bonjour,
    Voila j'ai un projet a réalisé que j'ai commencé en C sous visual C++ et dans lequel je doit réaliser un chronomètre et en lancer plusieurs en meme temps a intervalle différent.
    Cependant, j'aimerais toujours rester en application Win32 console. J'ai entendu parlé des threads avec les MFC et je pense que ca serait la solution mais je voudrais savoir si je vais devoir tt recommencer mon programme ou l'adaptation se fait assez facilement et je n'aurais pas grand chose a modifiié?
    De plus,le fonctionnement des threads m'a l'air assez complexe donc si qqun pourrait m'éclairer sur ce sujet je suis preneur!
    Merci d'avance

    A+ Matt

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    salut !!

    dans la faq tu as une explication pour les threads : http://c.developpez.com/faq/vc/?page=ProcessThread

    et comme je ne connais pas trop ton code je ne sais pas si il faut le restructurer mais je penses qu'il faudra quelques modifications

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut
    Voici mon code en C pour le moment:
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
     
    /*--------------------------INCLUDES---------------------------*/
    #include "main.h"                    //Appel du ficher main.h contenant les librairies et variables nécessaires au fonctionnement du programme
    /*-------------------------------------------------------------*/
     
     
     
     
    /*---------------------------DATE------------------------------*/
    void Affichage_date()
    {
        time_t t;
        struct tm *tb;
        t = time(NULL);
        tb = localtime(&t);
        printf("Date: %s", ctime(&t));    //Affichage de la date courante        
    }
    /*-------------------------------------------------------------*/
     
     
     
     
     
    /*-------------------MODULE DE COMMUNICATION-------------------*/
    void connexion()
    {
    /*-------------------------------------------------------------*/
        do
        {
            ret=CSC_SearchCSC();        //Recherche du lecteur de carte RFID
            if (ret!=RCSC_Ok)
            {
                printf("Veuillez connecter le lecteur de carte RFID\n");
            }
            else
            {
                ret=CSC_VersionCSC(version);    //Recherche de la version du lecteur de carte RFID
                printf("VERSION DU LECTEUR :\n%s\n", &version);        //Affichage de cette version
                printf("********************************************************************\n");
            }
     
        }while(ret!=RCSC_Ok);
    }
    /*-------------------------------------------------------------*/ 
     
     
     
     
     
    /*--------------------MODULE ACQUISITION-----------------------*/
    void acquisition()
    {
    /*----------------------MASK de RECHERCHE----------------------*/
        SearchExt.ISOA=0x08;
        search_mask=SEARCH_MASK_ISOA ;        //Seul les carte ISOA seront reconnues
    /*-------------------------------------------------------------*/
    /*--------------------VARIABLES DE LECTURES--------------------*/
        securParam.AccMode=DEFAULT;
        securParam.RFU=0x00;
        securParam.SID=0x03;
        securParam.LID=0x0003;
        securParam.NKEY=MF_PER_KEY;
    /*-------------------------------------------------------------*/
    /*--------------------LECTURE DES DONNEES----------------------*/
        printf("Voulez vous lancer le serveur d'acquisition ? (o/n)");
        scanf("%c", &lancement);    
        if(lancement == 'o')    
        {
            do
            {    
                ret=CSC_SearchCSC();        //Recherche du lecteur de carte RFID
                ret=CSC_CardStartSearch();    //Début de recherche de la présence d'une carte RFID
                ret=CSC_SearchCardExt(&SearchExt,search_mask,FORGET,TIMEOUT,&COM,&respLength,response);        //Recherche des carte RFID selon le mode voulue
     
                if(ret==RCSC_Ok)
                {
                    printf("LECTURE DE LA CARTE RFID.........\n\n[0x]:");
                    for (index = 0; index < N; index++)        //Lecture du tag (N° de série) de la carte
                    {
                        t[index] = response[index];            //La lecture s'effectue caractère par caractère
                        printf("%x", response[index]);        //Affichage du tag (N° de série).
                    }
                    printf("\n");
                }
                else
                {
                    printf("Aucune presence de carte RFID....\n");
                }
            }while(ret!=RCSC_Ok || ret==RCSC_Ok);
        }
        else
        {
    /*-------------------FERMETURE COMMUNICATION-------------------*/
        printf("\nFIN DE L'ACQUISITION\n");
        CSC_Close() ;        //Fermeture du port de communication avec le lecteur de carte RFID
        }
    }
    /*-------------------------------------------------------------*/
     
     
     
     
     
    /*-------------------------------------------------------------*/
    /*----------------------PARTIE EXECUTIVE-----------------------*/
    /*-------------------------------------------------------------*/
    void main ()
    {   
        printf("********************************************************************\n---------  CHRONOKART  --  Logiciel de gestions de serie  ---------\n\n----------------  PARTIE -- SERVEUR D'ACQUISITION  ----------------\n********************************************************************\n");
        Affichage_date();        //Affichage de la date
        printf("********************************************************************\n");
        connexion();            //Module de connexion au lecteur de carte
        acquisition();            //Module d'acquisition, récupère le numéro de série présent sur chaque carte
    }
    /*-------------------------------------------------------------*/
    Ce programme utilise des librairies et de dll pour son fonctionnement. Voila dite moi s'il y aurai de grosse modification. Du fait, deja que ca sera du C++ avec l'utilisation des MFC.

  4. #4
    mat.M
    Invité(e)
    Par défaut
    Il suffit de lancer la fonction acquisition dans un thread
    Il faudra changer le prototype et la déclarer comme cela:
    DWORD WINAPI Acquistion( LPVOID lpParam )

    Apres l'exécuter avec CreateThread.

    Voir le MSDN

    http://msdn.microsoft.com/library/de...ng_threads.asp

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Par défaut
    ok merci, je vais essayer.

Discussions similaires

  1. [MFC] Multithreading, Thread Worker
    Par pier* dans le forum MFC
    Réponses: 4
    Dernier message: 20/04/2007, 21h49
  2. [MFC] Multithread ou pas?
    Par beb30 dans le forum MFC
    Réponses: 2
    Dernier message: 15/05/2006, 10h46
  3. Réponses: 5
    Dernier message: 11/01/2006, 07h58
  4. [MFC] PostMessage, multithread
    Par Joeleclems dans le forum MFC
    Réponses: 6
    Dernier message: 24/05/2005, 16h17
  5. [MFC] multithread, communication père<->fils
    Par Joeleclems dans le forum MFC
    Réponses: 19
    Dernier message: 19/05/2005, 10h31

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