/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
DLL filer
Fra : ~*~ Mivi ~*~


Dato : 14-06-01 15:23

Hej

Jeg har fået fat i en DLL, som indeholder nogle procedure jeg mener, jeg
burde kunne kalde.

Jeg har en beskrivelse af dem.
Jeg kan også deklarere nogen af dem !
Det gør jeg således:

Function OpenPort(Port : String) : Byte; stdcall; external 'd:\EZTTNT.DLL'
name 'openport';


Den virker.

Så er der andre beskrevet, som programmet (udviklet i D5) fortæller under
opstart, at den ikke kan finde.

Er der nogen mulighed for, at se, hvilke procedure / funktioner der er i
sådan en DLL fil ?

Michael




 
 
Christian Iversen (14-06-2001)
Kommentar
Fra : Christian Iversen


Dato : 14-06-01 15:43

> Jeg har fået fat i en DLL, som indeholder nogle procedure jeg mener, jeg
> burde kunne kalde.
[...]
> Function OpenPort(Port : String) : Byte; stdcall; external 'd:\EZTTNT.DLL'
> name 'openport';
[...]
> Så er der andre beskrevet, som programmet (udviklet i D5) fortæller under
> opstart, at den ikke kan finde.
>
> Er der nogen mulighed for, at se, hvilke procedure / funktioner der er i
> sådan en DLL fil ?


Nej, det er der desværre ikke!

MEN, der er mulighed for at se om en bestemt funktion er tilgængelig!

Du skal bruge det, der hedder "dynamic linking". D.v.s at du først henter
adresserne på de Methods du vil kalde, run-time.

Det du bruger nu, hedder "static linking". D.v.s. at dit program indeholder
noget information om, at du *SKAL* bruge en funktion der hedder "OpenPort" i
"EZTTNT.DLL". Hvis ikke *alle* de funktioner du har specificeret, er til
rådighed, kan programmet ikke starte.

Du skal kigge på WinAPI-funktionen "LoadLibrary", og "GetProcAddress". (Slå
dem op i Delhi-online-hjælpen)

Håber du får det til at virke!

--
Regards, Christian Iversen [FIDUSO]
Flawless.Dk: [http://domains.flawless.dk]
Do you have a (broken?) IBM75GXP Drive?
Please go to [http://ibm.flawless.dk]



Peter Laursen (14-06-2001)
Kommentar
Fra : Peter Laursen


Dato : 14-06-01 16:15

>
>Jeg har fået fat i en DLL, som indeholder nogle procedure jeg mener, jeg
>burde kunne kalde.
>
>Jeg har en beskrivelse af dem.
>Jeg kan også deklarere nogen af dem !
>Det gør jeg således:
>
>
>Er der nogen mulighed for, at se, hvilke procedure / funktioner der er i
>sådan en DLL fil ?
>
Det kommer lidt an på hvordan dll'en er skruet sammen, men du kan muligvis få delphi til at lave en tlb fil for dig. Eksempel i delphi5 (efter hukommelsen!) : Start delphi, og luk alle projekter. Vælg 'Import type library' under Project, click Add og browse til din .dll og 'Create unit'. Resultat (hvis det går godt) en dllnavn_TLB.pas med typedefinitioner.

/Peter


Thomas Schulz (14-06-2001)
Kommentar
Fra : Thomas Schulz


Dato : 14-06-01 20:19

>Det kommer lidt an på hvordan dll'en er skruet sammen, men du kan muligvis
få delphi til at lave en tlb fil for dig. Eksempel i delphi5 (efter
hukommelsen!) : Start

Er det ikke udelukkende ved (D)Com(+) Dll'er?

Thomas




Jan (14-06-2001)
Kommentar
Fra : Jan


Dato : 14-06-01 18:47

In article <wN3W6.2002$VQ4.180421@news010.worldonline.dk>,
mivi@occdata.dk says...
:Hej
:
:Jeg har fået fat i en DLL, som indeholder nogle procedure jeg mener, jeg
:burde kunne kalde.
:
:Jeg har en beskrivelse af dem.
:Jeg kan også deklarere nogen af dem !
:Det gør jeg således:
:
:Function OpenPort(Port : String) : Byte; stdcall; external 'd:\EZTTNT.DLL'
:name 'openport';
:
:
:Den virker.
:
:Så er der andre beskrevet, som programmet (udviklet i D5) fortæller under
start, at den ikke kan finde.
:
:Er der nogen mulighed for, at se, hvilke procedure / funktioner der er i
:sådan en DLL fil ?
:
:Michael
:
:

Prøv at se på TDump.exe.
Ligger i dit BIN bibliotek.

Uffe Kousgaard (14-06-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 14-06-01 21:40

Hej

Til NT4 havde jeg et quickviewer program som kunne liste alle navne på
eksporterede procedurer i en DLL, men der er vist ingen mulighed for at se
procedurernes parametre.

Desværre har W2000 ikke den samme viewer indbygget.

Hilsen
Uffe

"~*~ Mivi ~*~" <mivi@occdata.dk> wrote in message
news:wN3W6.2002$VQ4.180421@news010.worldonline.dk...
> Hej
>
> Jeg har fået fat i en DLL, som indeholder nogle procedure jeg mener, jeg
> burde kunne kalde.
>
> Jeg har en beskrivelse af dem.
> Jeg kan også deklarere nogen af dem !
> Det gør jeg således:
>
> Function OpenPort(Port : String) : Byte; stdcall; external 'd:\EZTTNT.DLL'
> name 'openport';
>
>
> Den virker.
>
> Så er der andre beskrevet, som programmet (udviklet i D5) fortæller under
> opstart, at den ikke kan finde.
>
> Er der nogen mulighed for, at se, hvilke procedure / funktioner der er i
> sådan en DLL fil ?
>
> Michael
>
>
>



Jan (14-06-2001)
Kommentar
Fra : Jan


Dato : 14-06-01 23:34

In article <9i9W6.397$Os1.52281@news.get2net.dk>, uffe@routeware.dk
says...
:Hej
:
:Til NT4 havde jeg et quickviewer program som kunne liste alle navne på
:eksporterede procedurer i en DLL, men der er vist ingen mulighed for at se
:procedurernes parametre.
:
:Desværre har W2000 ikke den samme viewer indbygget.
:
:Hilsen
:Uffe
:
:"~*~ Mivi ~*~" <mivi@occdata.dk> wrote in message
:news:wN3W6.2002$VQ4.180421@news010.worldonline.dk...
:> Hej
:>
:> Jeg har fået fat i en DLL, som indeholder nogle procedure jeg mener, jeg
:> burde kunne kalde.
:>
:> Jeg har en beskrivelse af dem.
:> Jeg kan også deklarere nogen af dem !
:> Det gør jeg således:
:>
:> Function OpenPort(Port : String) : Byte; stdcall; external 'd:\EZTTNT.DLL'
:> name 'openport';
:>
:>
:> Den virker.
:>
:> Så er der andre beskrevet, som programmet (udviklet i D5) fortæller under
:> opstart, at den ikke kan finde.
:>
:> Er der nogen mulighed for, at se, hvilke procedure / funktioner der er i
:> sådan en DLL fil ?
:>
:> Michael
:>
:>
:>
:
Nej, den viser kun de exporterede funktioner.
I nogen dll'er ingenting... tror det er i C/C++ dll'er...?

Uffe Kousgaard (15-06-2001)
Kommentar
Fra : Uffe Kousgaard


Dato : 15-06-01 22:53

> Nej, den viser kun de exporterede funktioner.
> I nogen dll'er ingenting... tror det er i C/C++ dll'er...?

En DLL med et COM interface behøver ikke at eksportere nogen funktioner, så
det kunne være forklaringen, men næppe at det har noget med C/C++ at gøre.





Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste