Pergunta : Como reescrever o código using cordas a Delphi 2010

Por favor, eu tenho este código:

Var
 cDestino: PAnsiChar; cOrigem do
: PAnsiChar;
iProgBar: Inteiro;
sFile: Ansistring; sPath do
: Ansistring; sDiaSemana do
: corda [20];
and;

  sFile := “PedItem.db”;

  cOrigem:(sPath+'\ '+sFile) ; do
 --> tipos incompatíveis do erro E2010: cDestino do

de
do “carvão animal” e do “AnsiChar”: = strtopchar ('C:\Back - up_AcxSir \ '+sDiaSemana+sFile); do
--> erro: Tipos E2010 incompatíveis: “Carvão animal” e “AnsiChar”, E, advertindo: W1057 que o molde implícito da corda “AnsiString” às linhas de


These dois da “corda” causa estes erros e avisos ao compilar com mudanças de Delphi 2010.
What eu tenho que fazer?
Thanks




class= > " desobstruído " do
soluções >Related class= href= " /Programming/Languages/Pascal/Delphi/Q_24998528.html " title= " delphi 2010 do delphi " qRelatedParent " 2010: Tipos incompatíveis: “Carvão animal” e 'AnsiChar'

Resposta : Como reescrever o código using cordas a Delphi 2010

Eu estou supor que você está Windows API para copiado limas ou similar, assim que você precisa somente PChar e amarra tipos, e compilador de Delphi decidirá, de acordo com a versão, a versão que amável e correta correta do API se usará.

Com corda <2009 :="">= AnsiString de Delphi
(P) Carvão animal = (P) AnsiChar
e todas as janelas API chamadas são a versão do ANSI, ex:
CopyFile = CopyFileA

Com Delphi >=2009
Corda = WideString
Carvão animal = WideChar
e todas as janelas API chamadas são a versão larga


Assim, seu código deve ser feito para compilar com todas as versões, sem jogar demasiado com outros tipos a não ser que quando você não tem a escolha
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
Var
 cDestino, cOrigem: PChar;
 sFile, sPath, sDiaSemana: Corda;
 iProgBar: Inteiro;
e;

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


Anotar que você pode converter a corda a PChar com apenas um molde no aflarin da maneira mostrado para AnsiString & PAnsiChar. 
Assim você pode mesmo chamar sua função em uma linha

  CopyFile (PChar (sPath+'\ '+sFile), PChar ('C:\Back - up_AcxSir \ '+sDiaSemana+sFile), falsos); 
Outras soluções  
 
programming4us programming4us