Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Implicitno i eksplicitno linkovanje funkcija iz DLL-a

[es] :: Pascal / Delphi / Kylix :: Implicitno i eksplicitno linkovanje funkcija iz DLL-a

[ Pregleda: 2928 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

abraksas

Član broj: 14071
Poruke: 43
77.46.232.*



Profil

icon Implicitno i eksplicitno linkovanje funkcija iz DLL-a23.04.2007. u 07:59 - pre 207 meseci
Elem, koristim curlpas u jednom malom programčiću. Uz programčić onda moram da isporučujem i libcurl dll.
Ja sam imao na umu da dll smestim u resurse aplikacije i da ga prilikom pokretanja programa ekstraktujem ukoliko ne postoji. Funkcije i procedure iz dll-a su ulinkovane na sledeći način:
Code:
function  curl_formadd(httppost:ppcurl_httppost; last_post:ppcurl_httppost):CURLFORMcode; varargs; cdecl; external LIB_CURL;

Ako ne grešim, zbog ovog pristupa importovanja funkcija, nemam mogućnost da uradim ekstrakciju na startu aplikacije (ne znam ni da li je moguće uhvatiti exception "dll was not found" i odreagovati na njega), te bih trebao da svaku od ovih funkcija "dinamički" importujem, tj upotrebom:
Code:
LoadLibrary...
GetProcAddress...
FreeLibrary...

E tu dolazi do problema. Kako izvršiti deklaraciju ove funkcije, s obzirom na varargs i cdecl.

Hvala unapred.
 
Odgovor na temu

Srki_82
Srdjan Tot
Me @ My Home
Ljubljana

Član broj: 28226
Poruke: 1403
212.200.34.*

ICQ: 246436949


+10 Profil

icon Re: Implicitno i eksplicitno linkovanje funkcija iz DLL-a23.04.2007. u 08:26 - pre 207 meseci
Code:
type
  Tcurl_formadd_FUNC = function(httppost:ppcurl_httppost; last_post:ppcurl_httppost):CURLFORMcode; varargs; cdecl;

var
  F: Tcurl_formadd_FUNC;

.
.
.
LoadLib;
F := Tcurl_formadd_FUNC(GetProcAddress)
FreeLib;


Pisem iz glave, ali bi trebalo da radi
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Implicitno i eksplicitno linkovanje funkcija iz DLL-a

[ Pregleda: 2928 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.