Eksport rekordu z DLL

0

Witam, mam biblioteke DLL a w niej zdefiniowany typ rekordowy np.

 type TDane = packed record
    imie : string[20];
    nazwisko : string[20];
 end;

oraz tablicę :

 tablica : array[0..10] of TDane;

której pola są wypełnione danymi, np.

 tablica[0].imie := 'Jakies_Imie';
 tablica[0].nazwisko := 'Jakies_Nazwisko';

itd.

Jak wyeksportować owe dane z tablicy do programu ? Czytałem arta na 4p na temat DLL coś nie bardzo chce to w moim przypadku działać :|
Zaznaczam, że pola tablicy są już wypełnione, ich zawartość jest zdefiniowana w bibliotece i pozostaje nie zmienna.

Dąże do tego, żeby eksportować to przez jakąś procedure/funkcje, której parametrem byłby jedynie numer indeksu tablicy np.

function Pokaz(numer : integer) : TDane;
 begin 
   Result := tablica[numer];
 end; 

 procedure Pokaz(Numer : integer; var Rec : TDane);
  begin 
    Rec := tablica[numer];
  end;

Oczywiście dane są przykładowe, w rzeczywistości tablica ma wielkość ok 200-300 elementów. I uprzedzając pytania i sugestie dotyczące tego, że moge te dane (elementy tablicy zapisać w inny sposób) - otóż takie jest założenie i muszę się go trzymać. Pozdrawiam.

0

Eksportujesz w ogóle jakies funkcja z biblioteki?

    function Pokaz(numer : integer) : TDane; stdcall;
    begin 
       Result := tablica[numer];
    end;

i w aplikacji zrob tak

function Pokaz(numer : integer) : TDane; stdcall; external 'MojaBiblioteka.dll'

oczywiscie rekord musi byc taki sam w aplikacji jak i w bibliotece
mozna tez zrobic to troche inaczej uzywajac wskaznikow ale na razie sprobuj tak

0

no tak ;p eksportuje tyle że dynamicznie :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1