[delphi] dll i ładowanie rekordów rekordów

0
type TBaza = packed record
  name : shortstring;
  ile : integer;
end;

var baza : array[1..20] of TBaza;

w dll'u jest procedura:

procedure LadujBaze(var baza:array of TBaza); stdcall;

w programie mam:

procedure LadujBaze(var baza:array of TBaza); stdcall external 'baza.dll' name 'LadujBaze';

przy wywlaniu w programie:

  LadujBaze(baza);
  ShowMessage(baza[1].name);

pokazuje sie puste okienko 8| ktoś wie czemu ?

ps. procedura ładująca w dll'u jest na 100% dobra

0

Uzyj raczej tablicy statycznej, albo sharemem.

0

tablicy statycznej? ale jak ?
efekt, który chcę uzyskać:
ładuję dane z bazy(pliku) przez dll, z której moge je udostępnić aplikacji

0

problem (ku memu zdziwieniu) rozwiązuje indexowanie od zera
zamiast

var baza : array[1..20] of TBaza; 

dałem

var baza : array[0..20] of TBaza; 

i gra 8-0

0

Nie zapominaj, ze po tej zmianie masz 21 elementow w tablicy. :>

0

tak wiem, ale to jest z dużym zapasem, bo korzystam z 10

0

To nie lepiej w takim razie uzyc tablic dynamicznych? A nuz bedziesz potrzebowal wiecej niz 21. :>

0

To nie lepiej w takim razie uzyc tablic dynamicznych? A nuz bedziesz potrzebowal wiecej niz 21. :>

dzięki za sugestie, ale nie będe tego potrzebował (w sumie to nie był programik dla mnie :)) programik był naprawdę mały i nie było pot<ort>żeby</ort> używanie w nim tablicy dynamicznych. Jednak z pewnością skorzystam z ich potęgi w moim następnym programie (którego bazy danych nie jestem w stanie przewidzieć...) :D

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