Avatar billede repsak Nybegynder
11. marts 2003 - 23:28 Der er 8 kommentarer og
2 løsninger

Import af dll

Hey
Jeg er helt ny i dll-verdenen: derfor:
1. hvordan importerer jeg en dll-fil i mit C# program?
2. Og hvordan kalder jeg dens metoder?
3. Er koden skrevet rigtigt? (det var jo hele tre ting)

Understående kode virker ikke!!!

namespace Dll{
  class Test{
      public static int get(){
        return 7;
      }
  }
}

class go{
  public static void Main(string []args){
      System.Console.WriteLine("dw" + Dll.Test.get());
  }
}
Avatar billede simon.ulsnes Nybegynder
11. marts 2003 - 23:45 #1
Det kommer an på om det er en .NET-DLL eller en Win32 API-DLL (altså Windows-funktioner).

Hvis det er .NET, skal du putte en reference til filen når dit program kompileres:
csc /r:DinDLL.dll ditprogram.cs
Husk at importere DLL'ens namespace i dit program ("using"-statement).

Hvis det er en native Win32 API DLL, skal du importere namespaces System.Runtime.InteropServices, og definere funktionerne fra DLL'en på følgende måde i dit program:
[DllImport("dllfil.dll")] public static extern ReturType Funktion(FunktionArgumenter);

// Simon
Avatar billede repsak Nybegynder
11. marts 2003 - 23:59 #2
den skriver:
Go.cs(1,7): error CS0246: The type or namespace name 'Dll' could not be found (are you missing a using directive or an assembly reference?)
hvor skal Dll.dll filen ligge i forhold til programmet?
Avatar billede z42cool Nybegynder
12. marts 2003 - 08:52 #3
1) Lav en selvstændig dll.cs fil med:

namespace Dll{
  class Test{
      public static int get(){
        return 7;
      }
  }
}

2) kompiler med: csc /t:library dll.cs

3) Lav en test.cs med:

class go{
  public static void Main(string []args){
      System.Console.WriteLine("dw" + Dll.Test.get());
  }
}

4) Kompiler med: csc /t:exe test.cs /r:dll.dll
Avatar billede _just4fun_ Nybegynder
12. marts 2003 - 11:10 #4
Hvad er det for en .dll???
Avatar billede z42cool Nybegynder
12. marts 2003 - 11:15 #5
just4fun>> Hvem spørger du om hvad?
Avatar billede _just4fun_ Nybegynder
12. marts 2003 - 11:29 #6
z42cool>> det var en followup på simon.ulsnes første spm. Det kommer jo an på hvad det er for en slags dll..
Avatar billede simon.ulsnes Nybegynder
12. marts 2003 - 14:07 #7
_just4fun_ >> Jeg er ikke helt med på hvor det er du vil hen... Jeg skriver jo netop at det kommer an på hvilken slags DLL det er.

En DLL-fil lavet med en .NET-compiler er selvfølgelig en .NET (eller managed) DLL-fil. En DLL-fil fra Windows, er så en Windows-DLL (eller Win32 API DLL).

// Simon
Avatar billede z42cool Nybegynder
12. marts 2003 - 14:20 #8
Skal vi nu ikke gå ud fra at det er en .Net dll da den klasse han refererer (Dll.Test) er en han selv laver umiddelbart inden. (det kan godt betale sig at læse spørgsmålet :-))
Avatar billede simon.ulsnes Nybegynder
12. marts 2003 - 15:01 #9
Jaja, det var bare for at give lidt ekstra knowledge omkring DLL-referering...
Avatar billede _just4fun_ Nybegynder
12. marts 2003 - 19:28 #10
z42cool -> tjow...;-)
Simon -> Jeg tænkte at repsak ikke kunne få det til at virke da der ikke var svaret tilbage her til formiddag... Og hvis der skulle graves mere i det (eller at det f.eks. havde været en ActiveX-dll...) var det en rimelig vigtig information at have.

Men lidt nærlæsning af eksemplet kunne som z42.. nævner vist have givet et hint.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester