windows - Arbejde med DLL i en C ++ applikation

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg planlægger at bruge id3lib i min ansøgning. Jeg søger en måde at bruge biblioteket som en DLL på. Jeg har bemærket, at de har udgivet biblioteket i forskellig form: hvoraf den ene er Windows Binær. Min målplatform i Windows, og jeg vil bruge Qt 4.8. Efter at jeg har hentet filerne i Windows Binær, fandt jeg følgende filer i udgivelsesmappen: [1] [2]



  • id3lib.dll

  • id3lib.exp

  • id3lib.lib



Jeg ved, hvordan man bruger en DLL i Qt givet DLL, en eller flere header filer, hvor funktion prototyper er bosat, og med eller uden *. Lib fil. Denne pakke kommer ikke med en header-fil.


Hvordan skal jeg bruge denne pakke uden nogen header-fil? Hvad er formålet med * .lib og * .exp filer her? Så vidt jeg ved * .lib-filer bruges til statisk forbindelse med funktioner, som jeg ikke vil have i mit program.

Bedste reference


Det sædvanlige kursus er at bruge en headerfil #included i C ++-filen, den .lib-fil, der skal forbindes til og .dll'en er påkrævet i løbetid.


Overskriftsfilen bør/kan være i en anden pakke, da samme overskrift sandsynligvis anvendes til forskellige former for sammenkædningsstrategier.


I værste fald skal du kunne bruge et værktøj som depends.exe til at se de eksporterede symboler og oprette din egen h-fil for at matche - men det ville være bedre at finde en .h-fil udstedt med udgivelsen.

Andre referencer 1


Du har lige gået glip af overskriften. Den er tilgængelig under undermappen (se her). Også .lib-filen er stadig nødvendig for at forbinde, selvom du bruger DLL'en. [3]