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
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
salut,
je ne comprends pas la question .
quel est le but ?
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
Déclaration de la class principale
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
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; }
Je suppose que le ON_THREAD_MESSAGE démarre quand la fonction On WIM_DATA quand il recoit un message de MM_WIM_DATA???
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()
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 ...
Mon problème aujourd'hui c'est que je veux utiliser les threads win32, que je maitrise pas, il faut donc convertir le code,
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) { ... }
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)?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager