Questione : Come riscrivere codice using le stringhe a Delfi 2010

Prego, ho questo codice:

Var
 cDestino: PAnsiChar; cOrigem del
: PAnsiChar;
iProgBar: Numero intero;
sFile: Ansistring; sPath del
: Ansistring; sDiaSemana del
: stringa [20];
and;

  sFile := “PedItem.db„;

  cOrigem:(sPath+'\ '+sFile) ; del
 --> tipi incompatibili di errore E2010: cDestino del

di
di AnsiChar “e„„ “del carbone: = strtopchar ('C:\Back - up_AcxSir \ '+sDiaSemana+sFile); del
--> errore: Tipi incompatibili E2010: “Carbone„ e “AnsiChar„ E, avvertente: W1057 che il getto implicito della stringa “AnsiString„ alle linee di


These due “della stringa„ causa questi errori ed avvertimenti quando compila con i cambiamenti di Delfi 2010.
What devo fare?
Thanks




class= > " libero " del
soluzioni >Related class= href= " /Programming/Languages/Pascal/Delphi/Q_24998528.html " title= " Delfi 2010 di delphi " qRelatedParent " 2010: Tipi incompatibili: “Carbone„ e 'AnsiChar'

Risposta : Come riscrivere codice using le stringhe a Delfi 2010

Sto indovinando che state denominando Windows api per copiare le lime o simile, in modo da avete bisogno soltanto di PChar e mettete insieme i tipi e compilatore di Delfi deciderà, secondo la versione, la versione gentile e corretta corretta di api userà.

Con la stringa <2009 :="">= AnsiString di Delfi
(P) Carbone = (P) AnsiChar
e tutte le finestre api denominate sono la versione dell'ANSI, ex:
CopyFile = CopyFileA

Con Delfi >=2009
Stringa = WideString
Carbone = WideChar
e tutte le finestre api denominate sono la versione larga


così, il vostro codice dovrebbe essere fatto per compilare con tutte le versioni, senza giocare troppo con altri tipi a meno che quando non avete scelta
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
Varietà
 cDestino, cOrigem: PChar;
 sFile, sPath, sDiaSemana: Stringa;
 iProgBar: Numero intero;
e;

  sFile: = “PedItem.db„;
  cOrigem: = strtopchar (sPath+'\ '+sFile);
  cDestino: = strtopchar ('C:\Back - up_AcxSir \ '+sDiaSemana+sFile); 
  CopyFile (cOrigem, cDestino, falsi); 


Si noti che potete convertire la stringa in PChar con appena un getto nel aflarin di senso indicato per AnsiString & PAnsiChar. 
Così potete persino denominare la vostra funzione in una linea

  CopyFile (PChar (sPath+'\ '+sFile), PChar ('C:\Back - up_AcxSir \ '+sDiaSemana+sFile), falsi); 
Altre soluzioni  
 
programming4us programming4us