Gå til innhold

Anbefalte innlegg

Videoannonse
Annonse

Så lenge du har et parent window så har du jo referansen også. Kan du ikek bare bruke den direkte i "pluginsene" dine da. Hvis du har laget "parent window" programmet så har du jo alle muligheter til å lage properties og eventer og hva en du måtte ha behov for.

Og så lenge du lager alt i .NET så er det jo bare å referere til DLL filen i prosjektet.

 

Du kan også studere bruk av eksterne DLL'er som nødvendigvis ikke er laget i .NET

 

Et eksempel på bruk av en ekstern DLL:

[DllImport("MinDll", EntryPoint = "EKSPORTERT_PROSEDYRE")]
public static extern Int32 EksternProsedyre(Int16 pInnParameter);

 

På denne måten så kan du bruke prosedyrer i en DLL som programmet ditt egentlig ikke kjenner til

 

Det kan hende du må gjøre om strenger for jeg tror det er BSTRING som benyttes. I hvertfall er det slik når jeg bruker mine DLL'er som ikke er skrevet i C#. Eksempel på bruk av BSTRING:

[DllImport("EnDLL", EntryPoint = "RECEIVESTRING")]
public static extern void TaEnStreng([MarshalAs(UnmanagedType.BStr)] String pPassedString);

Lenke til kommentar

For å laste plugins er det veldig egnet at du lager interfaces for plug-inene dine i en felles .dll fil (som plug-ins kan bruke)

Du kan laste Dll-filene med System.Reflection.Assembly.Load, og bruke det returnerte objektet sitt GetTypes for å hente (og sortere ut) klasser som er definert.

For å lage en ny instans fra et Type objekt bruker du Activator.CreateInstance

 

I noen tilfeller kan også egne Attributes være kjekt å ha.

Endret av GeirGrusom
Lenke til kommentar

Jeg har laget dette flere ganger, men uviklingsmaskinen min er ikke koblet sammen, og jeg er for slapp til å gjøre det, så gi meg noen minutter, så skal jeg skrible sammen noe.

 

Merk også at Dll-er skrevet i C også kan lastes dynamisk ved å bruke LoadLibrary og GetProcAddress funksjonene fra Windows SDK.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...