Dll erstellen und laden



  • Hallo,

    eigentlich dachte ich ja Dlls zu erstellen und laden ist in C# sehr einfach im Gegensatz zu C++. Nun ja, leider ist dem nicht so und ich muss sagen ich bin auch noch ein C# Newbie.
    Hier mein Problem:

    Ich erstelle ein File Func.cs als Class Library -> übersetze und erhalte eine Dll.

    namespace A
    {
      public class B
      {
        public static long Multiply(long a, long b)
        {
          return (a * b);
        }
      }
      public class C
      {
       // ... another function
      }
    }
    

    Danach möchte ich die Dll laden:

    using System.Runtime.InteropServices;
    namespace Test
    {
      class Program
      {
        [DllImport("DllTest.dll")]
        static extern long Multiply(long a, long b);
    
        static void Main()
        {
          long num1 = 10;
          long num2 = 5;
    
          long product = Multiply(num1, num2);
          System.Console.WriteLine("{0} * {1} = {2}", num1, num2, product);
        }
      }
    }
    

    Fehler ist das er sagt bei long product = Multiply findet er den Einstiegspunkt der Dll nicht? Muss ich die Dll irgendwie anderes aufrufen, oder was ist hier falsch? Finde leider keine gute Anleitung im Netz 😞

    Danke



  • DllImport ist auch nur für unmanaged Code, für managed Code kannst Assembly.Load benutzen.



  • Bzw. Du kannst direkt eine Referenz auf dein Assembly erstellen und dann die Member des Assemblies einfach benützen.



  • Hallo

    simon.gysi schrieb:

    Bzw. Du kannst direkt eine Referenz auf dein Assembly erstellen und dann die Member des Assemblies einfach benützen.

    Das ist wirklich das Einfachste.

    chrische



  • chrische5 schrieb:

    Hallo

    simon.gysi schrieb:

    Bzw. Du kannst direkt eine Referenz auf dein Assembly erstellen und dann die Member des Assemblies einfach benützen.

    Das ist wirklich das Einfachste.

    chrische

    Hab ich jetzt die Ironie nicht verstanden??



  • Hallo

    Nein, nein. Ich wollte nur noch einmal betonen, dass dieser Weg wohl leichter ist als der Andere.

    chrische


Anmelden zum Antworten