/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Hvordan kalder man en funktion i en DLL? (~
Fra : Jens Rauff


Dato : 25-06-02 08:56

Hej...

Jeg har brug for at kalde en funktion i en DLL. Jeg har beskrivelse af
funktionsprototyperne i DLL'en. Det jeg mangler er at gøre min kode
opmærksom på, at den specifikke DLL skal bruges og derefter kalde en
funktion i DLL'en. Hvordan gøres det?

Mvh. Jens Rauff



 
 
Jonas Meyer Rasmusse~ (25-06-2002)
Kommentar
Fra : Jonas Meyer Rasmusse~


Dato : 25-06-02 10:41

Hej.

Prøv med noget i denne her retning:

typedef void (*dll_funktion)();

dll_funktion min_funktion;

HINSTANCE dll = LoadLibrary( "min.dll" );

if( dll )
{
min_funktion = reinterpret_cast< dll_funktion >( GetProcAddress( dll,
"minfunktion" ) );
if( min_funktion )
{
min_funktion(); //kald funktionen
}

//frigør
FreeLibrary( dll );

}

(ikke kompileret kode!)

mvh Jonas
"Jens Rauff" <e01jensra@student.hih.dk> wrote in message
news:3d182217$0$58399$edfadb0f@dspool01.news.tele.dk...
> Hej...
>
> Jeg har brug for at kalde en funktion i en DLL. Jeg har beskrivelse af
> funktionsprototyperne i DLL'en. Det jeg mangler er at gøre min kode
> opmærksom på, at den specifikke DLL skal bruges og derefter kalde en
> funktion i DLL'en. Hvordan gøres det?
>
> Mvh. Jens Rauff
>
>



Mogens Hansen (25-06-2002)
Kommentar
Fra : Mogens Hansen


Dato : 25-06-02 10:58


"Jens Rauff" <e01jensra@student.hih.dk> wrote

> Jeg har brug for at kalde en funktion i en DLL. Jeg har beskrivelse af
> funktionsprototyperne i DLL'en. Det jeg mangler er at gøre min kode
> opmærksom på, at den specifikke DLL skal bruges og derefter kalde en
> funktion i DLL'en. Hvordan gøres det?

Den nemmeste måde er at bruge funktionerne via et import library, hvorved
det er som at bruge alle andre funktioner.
1. Inkluder funktionsprototyperne - helt almindeligt
Vær opmærksom på om DLL'et er eksporterer C eller C++ funktioner.
Hvis man blander det sammen, og ikke binder det rigtigt sammen, får man
som minimum "unresolved ..." fra linkeren - men det er ikke DLL specifikt.
Hvis det er C++ funktioner, så vær opmærksom på om DLL'et er oversat med
samme compiler, som du bruger
2. Kald funktionerne - helt almindeligt
3. Link import librariet med.
Det hedder typisk det samme som DLL'et, blot med LIB som extension
Hvis det ikke findes, har din compiler sikkert mulighed for at generere
det på basis af DLL'et.
4. Kør programmet (sørg for at DLL'et kan findes)

Venlig hilsen

Mogens Hansen



Jens Rauff (25-06-2002)
Kommentar
Fra : Jens Rauff


Dato : 25-06-02 12:00

Tak for svarene. Nu har jeg noget at arbejde med. Der går dog nok lige lidt
tid med det, da jeg ikke er så stiv i windowsprogrammering.

Mvh Jens

"Mogens Hansen" <mogens_h@dk-online.dk> wrote in message
news:af9ekf$13sk$1@news.cybercity.dk...
>
> "Jens Rauff" <e01jensra@student.hih.dk> wrote
>
> > Jeg har brug for at kalde en funktion i en DLL. Jeg har beskrivelse af
> > funktionsprototyperne i DLL'en. Det jeg mangler er at gøre min kode
> > opmærksom på, at den specifikke DLL skal bruges og derefter kalde en
> > funktion i DLL'en. Hvordan gøres det?
>
> Den nemmeste måde er at bruge funktionerne via et import library, hvorved
> det er som at bruge alle andre funktioner.
> 1. Inkluder funktionsprototyperne - helt almindeligt
> Vær opmærksom på om DLL'et er eksporterer C eller C++ funktioner.
> Hvis man blander det sammen, og ikke binder det rigtigt sammen, får
man
> som minimum "unresolved ..." fra linkeren - men det er ikke DLL specifikt.
> Hvis det er C++ funktioner, så vær opmærksom på om DLL'et er oversat
med
> samme compiler, som du bruger
> 2. Kald funktionerne - helt almindeligt
> 3. Link import librariet med.
> Det hedder typisk det samme som DLL'et, blot med LIB som extension
> Hvis det ikke findes, har din compiler sikkert mulighed for at
generere
> det på basis af DLL'et.
> 4. Kør programmet (sørg for at DLL'et kan findes)
>
> Venlig hilsen
>
> Mogens Hansen
>
>



Povl H. Pedersen (25-06-2002)
Kommentar
Fra : Povl H. Pedersen


Dato : 25-06-02 22:32

In article <3d182217$0$58399$edfadb0f@dspool01.news.tele.dk>,
"Jens Rauff" <e01jensra@student.hih.dk> wrote:

> Hej...
>
> Jeg har brug for at kalde en funktion i en DLL. Jeg har beskrivelse af
> funktionsprototyperne i DLL'en. Det jeg mangler er at gøre min kode
> opmærksom på, at den specifikke DLL skal bruges og derefter kalde en
> funktion i DLL'en. Hvordan gøres det?
>
> Mvh. Jens Rauff

Du linker den bare ind.

e.g.

gcc hello.c -lmylib

så kan du bare kalde de funtioner der er i mylib.

Hvis det er et windows / WIN32 API spørgsmål, så er det en forkert
gruppe (?)

Jonas Meyer Rasmusse~ (26-06-2002)
Kommentar
Fra : Jonas Meyer Rasmusse~


Dato : 26-06-02 07:39

"Povl H. Pedersen" <nospam@home.terminal.dk> writes:

[snip]
> gcc hello.c -lmylib
[snip]
> Hvis det er et windows / WIN32 API spørgsmål, så er det en forkert
> gruppe (?)

Sikke noget vås. Du benytter selv en specifik oversætter i dit eksempel,
hvad får dig til at tro at det er okay, når du siger det ikke er okay med
windows ting?

Eh, pointen er selvfølgelig at begge ting vel er okay.

Jonas Meyer Rasmussen


Klaus Petersen (26-06-2002)
Kommentar
Fra : Klaus Petersen


Dato : 26-06-02 12:34

> > Hvis det er et windows / WIN32 API spørgsmål, så er det en forkert
> > gruppe (?)

SVJKS. er der ikke andre danske grupper, der passer bedre på windows
specifike C/C++ spørgsmål.



Jens Rauff (28-06-2002)
Kommentar
Fra : Jens Rauff


Dato : 28-06-02 07:40

TAK for søl.
Jeg kan ikke finde andre nyhedsgrupper på den server, som jeg benytter, der
passer bedre. Sådan er det. Jeg synes, at det hele går lidt for meget op i
søl her i nyhedsgrupperne. Jeg siger tak for svarene til Jonas og Mogens.

Mvh Jens


"Klaus Petersen" <spektual@hotmail.com> wrote in message
news:afc8r4$25a$1@sunsite.dk...
> > > Hvis det er et windows / WIN32 API spørgsmål, så er det en forkert
> > > gruppe (?)
>
> SVJKS. er der ikke andre danske grupper, der passer bedre på windows
> specifike C/C++ spørgsmål.
>
>



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

Månedens bedste
Årets bedste
Sidste års bedste