Witam,
Mam troche dziwny (jak dla mnie :) ) problem. W bibliotece dll mam zadeklarowaną procedure:
procedure Klasa.Procedura(tablica: Pointer); stdcall;
procedura ma ustawić długość tablicy (zmienna 'tablica') i cos do niej przypisać. treść procedury:
type TTablica = array of String; // wczesniej zadeklarowany typ 'pomocniczy'
...
begin
SetLength(TTablica(tablica^), 1); // ustawienei dlugosci na 1 element
TTablica(tablica^)[0] := 'zglasza sie dll'; // przypisanie do 1-go elementu pewnego lancucha znakow
end;
wywołanie w programie głównym:
var tmp: array of string;
begin
Klasa.Procedura(@tmp);
end;
jesli chodzi o całą klasę w dll to wszytko jest ok, tylko problem zaczyna się w lini:
SetLength(TTablica(tablica^), 1);
- wywala 'InvalidPointer'. próbowałem już na różne sposoby z tymi wskaźnikami ale nic nie wychodzi. jak mam procedure w programie głównym to wszystko jest OK.
ponawiam pytanie