Avatar billede bris Nybegynder
05. september 2006 - 11:03 Der er 7 kommentarer

C# og C

Jeg har brug for at tilgå biblioteker lavet C (også gerne c++, hvis det er samme princip), som ligger i en .dll fil. Jeg har stærkt brug for kodeeksempler, selvfølgelig i C#.
Avatar billede jolly_jay Nybegynder
05. september 2006 - 11:09 #1
Du kan bruge:

using System.Runtime.InteropServices;

og

[DllImport("smartdllic.dll")] <-- stien til dll'en
public static extern void helloWorld(); <-- metoden i dll'en.

Nu kan du kalde den fra c# på almindeligvis.
Avatar billede bris Nybegynder
05. september 2006 - 11:12 #2
Og hvad så? Kan jeg så skrive helloWorld() fra nogle af mine andre metoder? Hvad så med returværdier, hvis det er klasser som ligger i dll´en?
Avatar billede jolly_jay Nybegynder
05. september 2006 - 11:12 #3
Kode eksempel:

using System.Runtime.InteropServices;

public class Win32 {
  [DllImport("smartdllic.dll")]
  public static extern void helloWorld();

  static void Main()
  {
    helloWorld();
  }
}
Avatar billede jolly_jay Nybegynder
05. september 2006 - 11:15 #4
Du kan specificer hvilken return værdi ved at ændre "void"

public static extern int helloWorld(); <-- hvis den retunere en int
public static extern string helloWorld(); <-- og hvis det er en string
Avatar billede bris Nybegynder
05. september 2006 - 11:17 #5
Hvad så hvis det er klassen Klasse1, som ligger i dll´en? Skal jeg importere den på en måde også, eller gør man automatisk det, når man importerer dll´en?
Avatar billede jolly_jay Nybegynder
05. september 2006 - 11:19 #6
Det ved jeg faktisk ikke, men det tror jeg at du selv skal imp klassen i c#.
Avatar billede md_craig Nybegynder
06. september 2006 - 10:47 #7
Klassen skal naturligvis ikke implementeres fuldt i C#... det ville være lidt noller :P...

Men du skal definere den, således C# "kender den"... fx bare som et interface så vidt jeg lige husker... der er lidt forskellige fremgansmåder... men der er ellers masse information om det på nettet...

TheCodeProject har vist et par artikler om emnet så vidt jeg husker
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