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.1
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);
}
Est-ce que quelqu'un a une id�e sur comment corriger cette erreur svp ?


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 ?