Ga naar inhoud

[VC++] equivalent van Delphi's "external('mydll')"


anoniem

Aanbevolen berichten

Hallo, Ik vroeg me af of het mogelijk is om een DLL aan te roepen in VC++ zonder header file en zonder loadlibrary en freelibrary. Het gaat om een DLL die in Delphi geschreven is en 1 functie met een bekende naam export met calling convention stdcall. Ik weet dat het in Delphi en VB wel kan, in VB is het iets van "DECLARE function LIB" ofzo en in Delphi is het "function blah(blah); stdcall; external('mydll')". Zo is dus die functie altijd aan te roepen in het programma en hoef je niet elke keer de DLL te loaden en te free-en. Ander voordeel is dat het programma niet draait als de DLL er niet is, in het geval van load- en freelibrary doet ie dat wel... Iemand enig idee hoe ik zoiets aanpak? Of moet ik dan toch op de een of andere manier een header schrijven? - Fahr
Link naar reactie
Geen idee, maar volgens mij ontkom je niet aan die headers. Wat Delphi doet is immers ook een header maken, alleen ziet deze er wat strakker uit. Maar:[quote:3bac28176e]Ander voordeel is dat het programma niet draait als de DLL er niet is, in het geval van load- en freelibrary doet ie dat wel...[/quote:3bac28176e] Hier wil ik even bij opmerken dat je met LoadLibrary (volgens mij) wel degelijk de situatie kan afvangen indien de DLL niet wordt gevonden. Beter zelfs, want dit geeft je de mogelijkheid om zelf de fout af te handelen in plaats van dat Windows een redelijk cryptische foutbootschap weergeeft. Je zou bijvoorbeeld kunnen melden dat een bepaalde module niet bestaat en eventueel informatie verstrekken hoe de gebruiker deze module kan installeren. Het is gewoon netter om zelf dit soort fout-afhandelingen onder controle te houden. :o
Link naar reactie
Ja, das wel waar, maar toch... is er misschien een (normaal haalbare) manier om zelf een Header voor een DLL te schrijven? En anders moet ik toch wel met load en freelib iets kunnen uithalen dat die geload wordt bij startup en gefree-ed bij shutdown en dan op een of andere manier die functie file-wide te maken ofzo? Dan heb je toch min of meer een static link gesimuleerd... - Fahr
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...