eksport funkcji z dll [delphi]

0

program dzialal, ale po przerzuceniu funkcji (w sumie sa cztery funkcje) do bibliooteki dll dzialac przestal...

w bibliotece dll o nazwie dll.dll

function stosunek(i:integer;y:array of prog_tv):shortstring; stdcall;

(prog_tv to rekord) funkcja eksportowana jest przez nazwe;
w programie:

var myFileT:textfile;
    handler: HModule;
    i:integer;
    p:array of prog_tv;
    f_stosunek:function(i:integer;y:array of prog_tv):shortstring;stdcall;
begin
    handler:=LoadLibrary('dll.dll');
     if handler<>0 then
      begin
      f_stosunek:=GetProcAddress(handler,'stosunek');
      Edit1.Text:=f_stosunek(i,p);
      end;

to sa elementy kodu,ale mysle,ze elementy kluczowe..

0

Jeśli w tych funkcjach (w DLL) przypisywałeś jakieś zmiennej wartość lub funkcja zwracała wynik w pliku wykonawczym ich wartość jest równa 0 lub w najlepszym wypadku jakaś losowa.

0

chyba nie w tym rzecz,bo teraz nie zwraca nic..
po wczytaniu pliku tekstowego (sam program sie kompiluje),na ktorym wykonywane sa funkcje, tzn ktory jest analizowany wyskakuje blad..
tresc bledu:
Access violation at address 01162180 in module 'dll.dll'. Read of address 0000000C.

0

Może pokaż kod dllki, a ja bym dla pewności zamiast ShortStringów użył PCharów jak radzi komentarz widoczny u góry
po utworzeniu nowej dll w IDE. I do tego upewnij się że w uses biblioteki dll masz na pewno dodany moduł SysUtils.

0

udalo mi sie zrobic, napisalem DLLa od nowa i teraz dziala, w sumie nie do konca wiem dlaczego nie dzialalo wtedy, no ale to juz teraz niewazne:) dzieki wszystkim za sugestie

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