Bonjour,
dans une classe associé à une fenêtre, je crée un pointeur privé sur un objet usb_comp:
Ce pointeur est initialisé à une valeur NULL et est initialisé dans oninitialupdate.
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 class CTelUSBView : public CFormView { protected: // création à partir de la sérialisation uniquement CTelUSBView(); DECLARE_DYNCREATE(CTelUSBView) public: enum{ IDD = IDD_TELUSB_FORM }; // Attributs public: CTelUSBDoc* GetDocument() const; // Opérations public: // Substitutions public: virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual void DoDataExchange(CDataExchange* pDX); // Prise en charge de DDX/DDV virtual void OnInitialUpdate(); // premier appel après la construction // Implémentation public: virtual ~CTelUSBView(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // Fonctions générées de la table des messages protected: DECLARE_MESSAGE_MAP() private: //Variable à sauvegarder dans le fichier. char Id_Tel; CBoutonArray Btn_Syst; CBoutonArray Btn_Video; CBoutonArray Btn_Son; CBoutonArray Btn_Expl; CBoutonArray Btn_Souris; CString ch_video; CString ch_audio; CString ch_explorateur; CFile F_Btn; //Sauvegarde du profil bool mode_souris; usb_comp *TelUsb; public: afx_msg void OnTimer(UINT_PTR nIDEvent); long OnInitAlgo(WPARAM wparam,LPARAM lparam); void Tempo(); void Serialize(CArchive& ar); afx_msg void OnFileSave(); afx_msg void OnIdTel(); afx_msg void OnApplicationSouris(); afx_msg void OnDestroy(); afx_msg void OnApplicationVideo(); afx_msg void OnApplicationMusique(); afx_msg void OnApplicationExplorateur(); };
Dès que je connecte le périphérique USB associé, un pointeur contenu dans l'objet passe d'une valeur NULL à une addresse de périphérique.
Mon problème est une erreur de fermeture de l'application :
Quand le périphérique est déconnecté, pas de souci.
Quand celui-ci est connecté, le débogueur me signale qu'une fermeture d'objet n'a pas lieu au bon emplacement.
J'ai essayé de détruire l'objet usb_comp dans onClose, onDestroy, mais l'erreur survient avant l'exécution de l'erreur.
Avez-vous une suggestion?
Merci
Partager