Oprettet fre. d. 04. marts 2011 kl. 16:11:22

challenge
challenge (9.345 point. Point ude: 60)

Dynamisk DLL

Hej,

Jeg er i færd med (for første gang) at bruge DLL-filer i mine projekter. Jeg ønsker at linke mine DLL'er ved run-time, og det gør jeg også nemt med LoadLibrary og GetProcAddress.
Mit problem er nu blot, at jeg manuelt skal definere hvilken funktion fra DLL'en der skal defineres, eks.:
ProcAdd = (MYPROC) GetProcAddress(hinstLib, "myPuts");
Jeg ønsker imidlertid at kunne køre en for-loop der importerer alle funktioner fra DLL'en, der i princippet kan hedde hvad som helst. Hvorledes sørger jeg for dette?

Skrevet fre. d. 04. marts 2011 kl. 16:31:51| #1

arne_v
arne_v (1.016.169 point)
Det er der ikke en funktion til.

Du vil vaere noedt til at laese filen og parse manuelt.

Jeg ville nok lede efter alternative maader at loese problemet paa.

http://en.wikipedia.org/ (...)

har under "External links" nogle gode referancer til formatet.

Skrevet fre. d. 04. marts 2011 kl. 17:33:29| #2

challenge
challenge (9.345 point)
Jeg vil ikke modstride mig din viden, da jeg jo ved at den er bred og dyb, men hvis eks. Excel kan indlæse alle funktioner i en XLL/DLL når den loades (gennem en .def, så vidt jeg ved), hvorfor vil jeg da ikke kunne med mit simple eksempel? En XLL er jo trods alt stadig en DLL og udvikles som sådan.

Skrevet fre. d. 04. marts 2011 kl. 18:05:52| #3

arne_v
arne_v (1.016.169 point)
Jeg ved ikke hvordan en XLL goer det.

Jeg kan forestille mig to maader:

1) Excel laeser DLL filen og finder funktionerne som jeg beskrev ovenfor - det er lidt arbejde at kode, men da der formentligt er flere tusinde udviklere som arbejder paa Excel er det ikke et problem for Microsoft

2) de "snyder" og der er genereret en funktion med et kendt navn som returnerer en liste med navnene paa de andre funktioner

Skrevet fre. d. 04. marts 2011 kl. 18:06:27| #4

arne_v
arne_v (1.016.169 point)
Bemaek at COM faktisk goer det lidt ligesom #2.

Skrevet fre. d. 04. marts 2011 kl. 18:24:04| #5

challenge
challenge (9.345 point)
OK. Mange tak - jeg tror umiddelbart, at metode nr. 2 vil virke godt. Smid et svar :)

Skrevet fre. d. 04. marts 2011 kl. 18:32:58| #6

arne_v
arne_v (1.016.169 point)
Det ser ioevrigt ud til at XLL ogsaa goer dette.

Jeg fandt lige:
  http://blogs.msdn.com/ (...)

Skrevet fre. d. 04. marts 2011 kl. 18:33:08| #7

arne_v
arne_v (1.016.169 point)
og et svar

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Updater Hybrid App

Oprettet den 18. april 2012 kl. 13.29
sir_madsen giver 100 point for svar | Giv et svar »

Ansi-c win32API - kan ikke oprette Richedit4.1 kontrol

Oprettet den 16. april 2012 kl. 22.13
cblcbl giver 60 point for svar | Giv et svar »

Iphone Objective C - Sætte image på et imageview.

Oprettet den 7. april 2012 kl. 11.36
lasserasch giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger