Bonjour
je migre un grosse application (322 sources 700.000 lignes sans les Packages) de C++Builder 6 vers 2010. Après avoir corrigé diverses erreurs de comptabilité qui bloquait la compilation j'exécute le code et comme un bogue survient je pose un trap dans le code sur un instruction innocente :
AnsiString s = Edit1->Text
ou Edit1 est un TEdit
Je m'aperçois que s est vide tandis que Edit1->Text ne l'est pas. Je consulte (en debug) Edit1->Text et j'obtiens le message
E2451 Symbole '_fastcall Controls::TControl::GetText()' non défini
Étonné je crée un nouveau projet dans lequel je fais la manipe suivante :
1 2
| AnsiString s=Edit1->Text;
Button1->Caption=s; |
Je constate cette fois que Edit1->Text est bien lisible mais chose étrange, bien que la valeur de Edit1->Text soit transférée dans Button1->Caption, "s" est vide ! J'essaie s.Length() et là j'obtiens
E2451 Symbole '_fastcall System::AnsiStringBase::Length()' non défini
J'en déduis que mon projet a été converti avec des options qui agissent sur les types de chaines mais je n'ai pas trouvé d'explication claire dans la doc en ligne.
Partager