Problème de fermeture de fenêtre.
Bonjour,
dans une classe associé à une fenêtre, je crée un pointeur privé sur un objet usb_comp:
Code:
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();
}; |
Ce pointeur est initialisé à une valeur NULL et est initialisé dans oninitialupdate.
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