Crash avec wxTextCtrl::GetSelection()
Bonsoir.
D'après le livre de Julian Smart et al., p. 111, la méthode GetSelection() de la classe wxTextCtrl "returns the current selection span in two pointers to long integers".
La documentation donne :
" virtual void GetSelection(long* from, long* to) const
Gets the current selection span. If the returned values are equal, there was no selection.
(...)
Parameters
from : The returned first position.
to : The returned last position. "
Compte tenu de cela, j'ai écrit dans un programme (où ptrZoneTexteDuFrame désigne un pointeur sur un objet d'une classe dérivée de wxFrame) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
wxString chaineSelection = ptrZoneTexteDuFrame->GetStringSelection();
wxMessageBox( "GetStringSelection donne : ", "Message", wxOK, NULL, -1, -1);
for (unsigned int i = 0; i < chaineSelection.length(); ++i)
{
chaineNumero.Printf(wxT("%d"), int(chaineSelection[i]));
wxMessageBox( chaineNumero, "Message", wxOK, NULL, -1, -1);
}
long * ptrSurDebutSelection;
long * ptrSurFinSelection;
ptrZoneTexteDuFrame->GetSelection(ptrSurDebutSelection, ptrSurFinSelection); // Provoque
// un crash. |
Jusqu'à la boucle (comprise), GetSelection() n'intervient pas et tout se déroule comme prévu : les numéros Ansi des caractères sélectionnés sont affichés les uns après les autres.
Quant aux trois dernières instructions, elles sont acceptées par le compilateur mais provoquent un crash à l'exécution.
A toutes fins utiles, je travaille sous Windows XP et compile avec Dev-C++.
Quelqu'un peut-il me dire si j'ai fait une faute ?
Merci d'avance.
M.