Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Hilfe bei dll und PAnsiChar

  Alt 28. Mär 2013, 11:08
Du musst auch im Vorfeld genügend Speicher für Output reservieren und OutputSize entsprechend der Länge setzen. Für z.B. die ersten 50 Zeichen müsste das dann lauten:
Delphi-Quellcode:
procedure TForm1.buttonClick(Sender: TObject);
var
  output: PAnsiChar;
  input: PAnsiChar;
begin
  input:=PAnsiChar(AnsiString(editInput.Text));
  output := AnsiStrAlloc(50);

  Extension(output,StrLen(output),input);
  editOutput.Text:=output;
  StrDispose(output);
end;
Oder alternativ:
Delphi-Quellcode:
procedure TForm1.buttonClick(Sender: TObject);
var
  output: AnsiString;
  input: PAnsiChar;
begin
  input:=PAnsiChar(AnsiString(editInput.Text));
  SetLength(output, 50);

  Extension(PAnsiChar(output),Length(output),input);
  editOutput.Text:=output;
end;
Falls ich keinen Denkfehler mache, sollte das so funktionieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat