Bonjour,
lors d'un passage Builder 6 vers Builder 2010, je me suis retrouvé avec une erreur de compilation dans un code de DLL que j'ai du mal à interpréter :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Vérification des dépendances de projet... Compilation de DLL_PEthernet.cbproj (configuration Débogage) [BCC32 Avertissement] unit2.cpp(20): W8057 Le paramètre 'Sender' n'est jamais utilisé [BCC32 Erreur] Unit1.cpp(93): E2015 Ambiguïté entre '_fastcall System::AnsiStringT<0>::AnsiStringT(const System::AnsiStringT<0> &) at c:\program files\embarcadero\rad studio\7.0\include\vcl\dstring.h:359' et '_fastcall System::AnsiStringT<0>::AnsiStringT(const wchar_t *,int) at c:\program files\embarcadero\rad studio\7.0\include\vcl\dstring.h:393' [BCC32 Erreur] Unit1.cpp(93): E2031 Impossible de transtyper de 'Variant' en 'AnsiString' Echec Temps écoulé : 00:00:00.1Est-ce que quelqu'un a une idée sur comment corriger cette erreur svp ?
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 Variant _stdcall Send(Variant texte) { AnsiString txt; txt = (AnsiString) texte; // erreur en borland builder 2010, pas en borland builder 6 char buftx[12]; sprintf(buftx,txt.c_str()); TcpClient1->SendBuf(buftx,12,0); // RX char bufrx[50]="\000000000000000000000000000000000000000000000000"; TcpClient1->ReceiveBuf(bufrx,50,0); txt = bufrx; return ( (Variant) txt); }
De manière générale je galère depuis que je suis passé au 2010 sur les fonctions qui utilisent du texte, depuis la simple Application->MessageBox qui n'accepte plus du texte sans le L devant, jusqu'aux conversions entre UnicodeString AnsiString WideString bref, ça commence sérieusement à me gaver de passer du temps pour des trucs sans intérêts comme ça.
Question : Qu'utilisez-vous comme chaines de caractère et pour quelles raisons ?
plutot des string, des CString, des UnicodeString, des WideString, des AnsiString, autre ?
Partager