25. oktober 2004 - 11:22Der er
18 kommentarer og 1 løsning
Runtime init af funktioner i en DLL fil
Kan man skrive en C# applikation der kan bruge forskellige DLL'er alt efter hvilken fil der vælges i en FileOpenDialog (eller hvad den hedder) Er det muligt at man kan vente med at hente funktionerne ind og "initialisere" dem til filen er blevet valgt? Jeg ved at man kan bruge DLLImport til at hente funktioner fra en dll men der skal man kende funktionsnavnet og navnet + stien til dll'en.
ok et eksempel, hmmm : lad os sige du har i sinde at oprette en bestemt type fra en vilkårlig .NET assembly fil (.dll). Vi kalder typen for AddinClass:
ok det passer ikke det jeg har skrevet... det er totalt volapuk, det må du undskylde. Jeg kan komme med et link nu, og en bedre forklaring lidt senere (fik lige travlt)
den grundlæggende ide i hans tutorial er at man implementerer et interfafce i sin assembly. Når man så skal loade en assembly tjekker man, hvilke interfaces der er implementeret i assemblien. Hvis der er nogen, opretter man en instans af interfacet og kan så gå igang med at brugge klassen fra assembly'en
Det eksempel jeg kan anbefale er koden fra tutorial'en på code project. Hvis du har spørgsmål til det så fyr løs.
Det er en go' ide at få afklaret de grundlæggende spørgsmål:
Det første spørgsmål er nok hvad man vil bruge "funktionaliteten til". Vil man hente en ekstern fil ind for at få den til at udføre et job for "hoved applikationen" (så er eksemplet godt). Eller vil man bare starte en ekstern fil, og lade den køre selvstændigt (så kan man bare starte filen med process.Start).
Tak, jeg vil kigge nærmere på det når jeg får lidt mere tid. Evt. først i weekenden så der går lidt tid inden du kan få dine point, hvis det er hvad jeg skal bruge.
det er unmanaged C++ som skal bruges til et måleapparat. Programmet skal testes på PC vha et interface (ikke interface som "klassen") lavet i C#. Dette test program skal kunne brug tilpasses til alle de forskellige programmer fra måleapparaterne og skal kunne tilpasses til alle kommende programmer. Derfor er det lidt besværligt at skulle skrive koden så den passer til dll'en med f.eks. en alm. DLLImport
ahh du mener altså at man skal lave en DLL (myloader) i unmanaged C++ som kan hente de forskellige funktioner i de andte DLL'er og så kalde den DLL i C#. Hm det kan være at det må blive sådan det gøres. Så må jeg jo bare i gang med at studere C++ bogen jeg har for at se om der står noget brugbart. Ellers kommer jeg frygtligt tilbage ;-) Jeg har dog læst et eller andet sted at i framework 2.0 skulle C# understøtte det jeg vil lave, men det er egentlig kun et rygte som jeg ikke har undersøgt nærmere så...
Hvis det bliver nødvendigt så opretter jeg et nyt spørgsmål
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.