Hayer Skrevet 23. september 2009 Del Skrevet 23. september 2009 Hei! Har et parent-window hvor andre "plugins" må kunne opprette egne kontroller og event handles, mulig? isåfall hvordan? Lenke til kommentar
HDSoftware Skrevet 23. september 2009 Del Skrevet 23. september 2009 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
GeirGrusom Skrevet 23. september 2009 Del Skrevet 23. september 2009 (endret) 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 23. september 2009 av GeirGrusom Lenke til kommentar
Hayer Skrevet 23. september 2009 Forfatter Del Skrevet 23. september 2009 Ingen som har et eksempel på dette da? Har du ikke noe enkel og godt kommentert kode liggende da GeirGrusom? Litt av poenget er at den bare skal laste alle .DLL'ene i ./Plguins/ Lenke til kommentar
GeirGrusom Skrevet 23. september 2009 Del Skrevet 23. september 2009 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
GeirGrusom Skrevet 23. september 2009 Del Skrevet 23. september 2009 Ok, ferdig. Den bruker .NET 4.0 dog, siden VS 2010 er det eneste jeg har installert på denne maskinen, og jeg glemte å sette den til .NET 3.5 PluginExample.zip Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå