Dieser Code aus der OneInst.pas von Oliver kompiliert nicht unter Delphi 2010 - Compiler error "inkompatible Typen":
Delphi-Quellcode:
{ kleine Hilfsfunktion die uns die Kommandozeilenparameter entpackt }
function ParamBlobToStr(lpData: PChar): string;
var
pStr: PChar;
begin
Result := '';
pStr := lpData;
while pStr[0] <> #0 do
begin
Result := Result + string(pStr) + #13#10;
pStr := @pStr[lstrlen(pStr) + 1]; <<< "E2008 - incompatible types"
end;
end;
{ kleine Hilfsfunktion die uns die Kommandozeilenparameter einpackt }
function ParamStrToBlob(out cbData: DWORD): PChar;
var
Loop: Integer;
pStr: PChar;
begin
cbData := Length(ParamStr(1)) + 3; { gleich inklusive #0#0 }
for Loop := 2 to ParamCount do
cbData := cbData + DWORD(Length(ParamStr(Loop)) + 1);
Result := GetMemory(cbData);
ZeroMemory(Result, cbData);
pStr := Result;
for Loop := 1 to ParamCount do
begin
lstrcpy(pStr, PChar(ParamStr(Loop)));
pStr := @pStr[lstrlen(pStr) + 1]; <<< "E2008 - incompatible types"
end;
end;
Ich versteh nur nicht warum, sieht doch alles wunderbar aus oder?