13. juli 2006 - 08:32Der er
9 kommentarer og 1 løsning
deklarere funktioner i en DLL
Hej,
I VB og Delphi kan man deklarere externe funktioner i en DLL med en eneste linje (dvs man specificerer funktionens navn, argumenter, sti til dll, calling convention, returtype). Er noget tilsvarende muligt med C (altså med en simpel linje) ??
Hov jeg er ikke sikker på jeg fatter syntksen ovenfor. Skal DLL'en loades på den måde hver gang jeg vil foretage et funktionskald? Eller kan noget af ovenstående sættes ind i DllMain ?
LoadLibrary returnerer en HINSTANCE som du kan bruge i mange GetProcAddress kald og den function pointer der returneres fra GetProcAddress kan også kaldes mange gange
DLL'er er heldigvis ikke en del af C eller C++ standarden og jeg tvivler meget på at det nogensinde bliver.
I C og C++ har man ikke (nødvendigvis) noget type information i en DLL (eller andre binære) filer og det vil dermed være ret svært at lave.
Det er ikke så meget anderledes end med objekt (og lib) filer, der er heller ingen måde at læse type på funktioner ud af dem; det bliver man nød til selv at holde styr på.
en .NET DLL er reelt en 1:1 transformering af source koden til binære tokens
og ikke nok med at man kan få alle klasse definitioner etc. ud man kan også nemt decompile dem til C# eller VB.NET efter eget valg - det eneste som mangler er kommentarerne og navnene på de lokale variable
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.