Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Delphi - chyba pri volani funkcie z DLL...

ANSI string neni vlastni retezec, ale jen odkaz na string. Takze do te knihovny byl predan pouze ukazatel a navic mechanismus DLL neumi primo s retezci pracovat.

Obvykle se predavani stringu pouzitim PChar + predanim jeho velikosti.

Takze to predani by mohlo vypadat takto:

var
  s: string;
  l: Integer;
  Buffer: PChar;
begin
  s := Meno1.Text;
  l := Length(s);
  Buffer := StrAlloc(l + 1);
  StrPLCopy(Buffer, s, l);
  // zde prijde volani funkce z DLL
  StrDispose(Buffer);
end;

v DLL se ziska string:
var
  s: string;
begin
  { data: Pchar, DataSize: Integer jsou parametry DLL funkce }
  SetString(s, Data, DataSize);
  ...
end;

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny