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] conversion Thread


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 21
    Points : 8
    Points
    8
    Par défaut [MFC] conversion Thread
    Bonjour,

    Comment convertir : afx_msg void OnMM_WIM_DATA(UINT parm1, LONG parm2); pour ne pas utiliser les MFC?

    J'ai essayé de comprendre le but des afxmsg...je ne vois toujours pas.

    Merci

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    je ne comprends pas la question .
    quel est le but ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Mon but est de transformer tout le programme MFC en simple win32
    pour cela, je ne comprend pas l'utilité ni le fonction d'un AFX message

  4. #4
    Futur Membre du Club
    Inscrit en
    Août 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Déclaration de la class principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    CSoundIn::CSoundIn()
    {
    	m_QueuedBuffers = 0;
    	m_hRecord = NULL;
    	m_bRecording = false;
    	DataFromSoundIn = NULL;
    	m_pOwner = NULL;
    	CreateThread();
    	m_bAutoDelete = false;
    }
    La class Csoundin herite de la class Cwinthread...




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    BEGIN_MESSAGE_MAP(CSoundIn, CWinThread)
    	//{{AFX_MSG_MAP(CSoundIn)
    		// NOTE - the ClassWizard will add and remove mapping macros here.
    	//}}AFX_MSG_MAP
    	ON_THREAD_MESSAGE(MM_WIM_DATA, OnMM_WIM_DATA)
    END_MESSAGE_MAP()
    Je suppose que le ON_THREAD_MESSAGE démarre quand la fonction On WIM_DATA quand il recoit un message de MM_WIM_DATA???

    Ca c la fonction qui ouvre le port...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mmReturn = ::waveInOpen( &m_hRecord, WAVE_MAPPER, &m_Format, m_ThreadID, NULL, CALLBACK_THREAD);

    Fonction qui realise le travail principal, recup buffer du port audio ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    afx_msg void OnMM_WIM_DATA(UINT parm1, LONG parm2);
     
     
    void CSoundIn::OnMM_WIM_DATA(UINT parm1, LONG parm2)
    {
    ...
     
     
    }
    Mon problème aujourd'hui c'est que je veux utiliser les threads win32, que je maitrise pas, il faut donc convertir le code,


    Je propose

    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
     
     
     
    class CWorkerThread
    {
    public:
        CWorkerThread()
        {
            m_dwID = 0;
            m_hThread    = 0;
        }
     
        ~CWorkerThread()
        {
            CloseHandle(m_hThread);
        }
     
        bool InitThread()
        {
            m_hThread = CreateThread(0,
                0,
                ThreadFunc,
                this,
                0,
                &m_dwID);
            if(!m_hThread)
            {
                // Impossible de créer le thread !
                return false;
            }
            return true;              
        }
    public:
     
    	DWORD GetCurrentThreadId();
     
    private:
        DWORD  m_dwID;
        HANDLE m_hThread;
     
        static DWORD WINAPI ThreadFunc(LPVOID pvParam);
    };
     
     
    DWORD WINAPI CWorkerThread::ThreadFunc(LPVOID pvParam)
    {
        CWorkerThread  *pThis=reinterpret_cast< CWorkerThread *>( pvParam) ;
     
     
    // le code !! 
     
        return 0;
    }
     
    DWORD CWorkerThread ::GetCurrentThreadId()
    {
    	return m_dwID;
    }

    Je peux tjours faire ??

    Class Csoundin : public CWorkerThread


    Comment mettre en place le lien qui existe avec le afx message... et le ON_THREAD_MESSAGE(MM_WIM_DATA, OnMM_WIM_DATA)?

Discussions similaires

  1. Réponses: 10
    Dernier message: 31/01/2006, 17h34
  2. [MFC] CFormView, Thread et rafraichissement
    Par Philippe299 dans le forum MFC
    Réponses: 6
    Dernier message: 08/09/2005, 15h18
  3. [MFC] classe thread
    Par Joeleclems dans le forum MFC
    Réponses: 13
    Dernier message: 24/05/2005, 14h31
  4. [MFC] dialog & thread & progressbar
    Par Tigris94 dans le forum MFC
    Réponses: 4
    Dernier message: 05/04/2005, 15h51
  5. [MFC] UpdateData() + thread
    Par MadChris dans le forum MFC
    Réponses: 6
    Dernier message: 03/06/2004, 20h55

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