29. januar 2008 - 20:11Der er
6 kommentarer og 1 løsning
Hvordan eksporterer man filer fra en .dll i C++Builder?
Jeg har skrevet en dll, der indeholder et par funktioner. Disse funktioner vil jeg selvfølgelig gerne kunne bruge fra andre programmer, men jeg kan ikke få det til at virke. Jeg har lavet en .def-fil, hvor der står
LIBRARY <dllnavn> EXPORTS <funktion1> <funktion2>
...og adderet den til projektet.
Desuden har jeg forsøgt mig med en masse kombinationer af _export og _import keywords i henholdsvis dll og exe, og så har selvfølgelig prøvet at finde noget i Borlands hjælpefiler og via Google, men indtil videre uden held.
Der er måske andre måder, men du kan lave et import-lib, som du kan inkludere i de andre projekter. For at lave et import-lib skal du bare bruge dll'en, så kører du kommandoen:
implib mydll.lib mydll.dll
Derved får du mydll.lib ud fra mydll.dll, og du skal så bare linke med mydll.lib i de andre projekter. mydll.lib vil så kalde funktionerne i dll'en.
bertelbrander, når du siger "linke med mydll.lib", så mener du "add mydll.lib to project", ikke? Kommandoen "implib DLL_mousehook.lib DLL.mousehook.dll" virker godt nok - jeg får en .lib-fil ud det. dll'en fylder 99Kb, og .lib-filen fylder kun 1.70 Kb. Lyder det rigtigt?
I det program, der skal bruge funktionerne fra dll'en, har jeg denne funktion:
Du har ret, jeg kan godt kalde funktionen direkte, så i den forstand fungerer det. Jeg skrev "GetProcAddress( hdll, "InstallHook" );" som en test på, om alt virkede, som det skulle. Og den del virker stadig ikke, heller ikke med "_" eller "__" foran InstallHook. Og hverken med eller uden "extern". Så et eller andet må der vel være galt? Dyb mystik!Har du nogen forslag?
Det generer mig altid, når noget, der BURDE virke, ikke gør det, men indtil videre 'glemmer' jeg det med GetProcAddress. Programmet fungerer som det skal med .lib-filen ( jeg havde aldrig hørt om implib før ). Så du skal have mange tak for hjælpen. Jeg ved jo, at du ikke samler på point, så jeg snupper dem selv :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.