Bonjour,
J'ai un probl�me tout b�te mais que je n'arrive pas � r�soudre :aie:
J'ai d�clar� un string m_DSN en membre protected de ma classe CRecordListCtrl.
A un moment, je dois initialis� mon string avec _bstr_t dsn.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 class CRecordListCtrl : public CListCtrl//CListCtrlEx { public: DECLARE_DYNCREATE(CRecordListCtrl); CRecordListCtrl(); virtual ~CRecordListCtrl(); ... protected: //{{AFX_MSG(CRecordListCtrl)$ ... string m_DSN; ... //}}AFX_MSG DECLARE_MESSAGE_MAP() public: // assesseurs et mutateurs des attributs string get_m_DSN(){return m_DSN;}; void set_m_DSN(_bstr_t dsn); };
Pour pouvoir changer la valeur de mon string, j'utilise un mutateur qui re�oit en param�tre un _bstr_t.
A la compilation �a passe tr�s bien.Code:
1
2
3
4 void CRecordListCtrl::set_m_DSN(_bstr_t dsn){ string temp((char*)dsn); m_DSN = temp; }
Le probl�me arrive en mode debug : � l'ex�cution de m_DSN = temp; j'ai droit � un access violation.
J'ai essay� en passant par une variable temporaire (en char*) mais cela ne marche pas non plus.
Est-ce quelqu'un aurait une id�e pour r�soudre ce probl�me ???Code:
1
2
3
4
5
6
7
8
9 void CRecordListCtrl::set_m_DSN(_bstr_t dsn){ string temp((char*)dsn); int taille = temp.size() +1; char* tmp = new char[taille]; strncpy(tmp, temp.c_str(), taille); m_DSN = tmp; }
Merci
Sachiel
P.S. : je d�veloppe sous visual c++ 2005 (et en c++)