Ĺadny brzuch
Siemanko !!
Tak jak w temacie czy da się pobrać procedurę z DLL dynamicznie która zwraca jakiś wynik, napewno się da ale ja nie potrafię i chciałbym usłyszeć odpowiedź na moje pytanie ;-) Bardzo proszę o pomoc
Mitas
Piszcie ludzie jaki język... Ja zakładam ze delphi:
function LoadDll(dllName:string):string;
type
TmyFunct=function:PChar;//tu deklarujemy taka funkcje i parametry jak w dll
const FName='Heyah'';//Nazwa funkcji w DLLce
var
Mf:TMyFunct;
hnd:Cardinal;
begin
hnd:=LoadDll(PChar(dllName));
if hnd=0 then exit;
GetProcessAddress(hnd,FName,@mf);
result:=pchar(mf);
end;
Nie wiem czy to dobrze napisane bo pisalem z glowy z pracowni informatycznej... Za pare godzin bede w domu to ci podam jak na pewno dziala... Zwlaszcza moglem pomylic GetProcessAddress...
A teraz jeszcze wyjasnienie:
FName - To zmienna która ma przypisaną nazwę funkcji w dllce, taka jaką dajesz w Dll
TMyFunct - funkcja (bez nazwy) ale musi być identyczna deklaracja jak w Dllce, np w dll puiszesz:
function GetName:PChar;
...
a potem exports GetName name 'Heyah';
a w kodzie:
type
TmyFunct=function:PChar;
const
FName='Heyah';
To chyba już wszystko... A i pamiętaj żeby NIGDY nie przesyłać string pomiedędzy Dll<>App bo się robią jakies straszne błędy. Zawsze Pchar ! ;)
Zapraszam na moją stronkę o programowaniu:http://www.migsoft.prv.pl
Cholera!!! Tam gdzie jest function:PChar to powinno być function: PChar ... Sorx... To kwestia tych emotów
Zapraszam na moją stronkę o programowaniu:http://www.migsoft.prv.pl
Zamiast GetProcessAddress(hnd,FName,@mf) będzie mf:=GetProcAddress(hnd,FName); :cheesy:
------------------------
Pzdr, Cyrkiel
Możliwe, mówilem ze z glowy pisze i moga byc bledy, zwlaszcza ze zadko uzywam
Zapraszam na moją stronkę o programowaniu:http://www.migsoft.prv.pl
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Tak jak w temacie czy da się pobrać procedurę z DLL dynamicznie która zwraca jakiś wynik, napewno się da ale ja nie potrafię i chciałbym usłyszeć odpowiedź na moje pytanie ;-) Bardzo proszę o pomoc
Mitas
Piszcie ludzie jaki język... Ja zakładam ze delphi:
function LoadDll(dllName:string):string;
type
TmyFunct=function:PChar;//tu deklarujemy taka funkcje i parametry jak w dll
const FName='Heyah'';//Nazwa funkcji w DLLce
var
Mf:TMyFunct;
hnd:Cardinal;
begin
hnd:=LoadDll(PChar(dllName));
if hnd=0 then exit;
GetProcessAddress(hnd,FName,@mf);
result:=pchar(mf);
end;
Nie wiem czy to dobrze napisane bo pisalem z glowy z pracowni informatycznej... Za pare godzin bede w domu to ci podam jak na pewno dziala... Zwlaszcza moglem pomylic GetProcessAddress...
A teraz jeszcze wyjasnienie:
FName - To zmienna która ma przypisaną nazwę funkcji w dllce, taka jaką dajesz w Dll
TMyFunct - funkcja (bez nazwy) ale musi być identyczna deklaracja jak w Dllce, np w dll puiszesz:
function GetName:PChar;
...
a potem exports GetName name 'Heyah';
a w kodzie:
type
TmyFunct=function:PChar;
const
FName='Heyah';
To chyba już wszystko... A i pamiętaj żeby NIGDY nie przesyłać string pomiedędzy Dll<>App bo się robią jakies straszne błędy. Zawsze Pchar ! ;)
Zapraszam na moją stronkę o programowaniu:http://www.migsoft.prv.pl
Cholera!!! Tam gdzie jest function:PChar to powinno być function: PChar ... Sorx... To kwestia tych emotów
Zapraszam na moją stronkę o programowaniu:http://www.migsoft.prv.pl
Zamiast GetProcessAddress(hnd,FName,@mf) będzie mf:=GetProcAddress(hnd,FName); :cheesy:
------------------------
Pzdr, Cyrkiel
Możliwe, mówilem ze z glowy pisze i moga byc bledy, zwlaszcza ze zadko uzywam
Zapraszam na moją stronkę o programowaniu:http://www.migsoft.prv.pl