Eine einfache .NET DLL mit Exports erstellen

neus

Grünschnabel
Hallo,

ich möchte eine DLL mit Net 2.0 erstellen.
Ich habe schon etwas expiermentiert, allerdings mit reinen C++ und da hat es funktioniert.

Die Syntax ist für Anfänger wie mich aber sehr gewöhnungsbedürftig und ich möchte das ganze lieber in C# können.

Vielleicht kennt jemand ein verständliches Tutorial.

Ziel soll es sein, das die DLL zwei Exports hat die man ansprechen kann (AufrufEins und AufrufZwei). Ich weiß aber nicht wie ich es umsetzen soll.

Mal ein Beispiel:
Code:
#include <iostream>
#include "DLL_Tutorial.h"

#define DLL_EXPORT

extern "C"
{
   DECLDIR void AufrufEins1( void )
   {
      std::cout << "Hallo!" << std::endl;
   }

   DECLDIR void AufrufZwei2( void )
   {
      std::cout << "Auf Wiedersehen!" << std::endl;
   }
}

und das DEF-File

Code:
LIBRARY dll_tutorial
DESCRIPTION "our simple DLL"
EXPORTS
   AufrufEins @1
   AufrufZwei @2


Kennt jemand irgendein Simplen Source Code oder hat gar ein Beispielprojekt, das verdeutlicht wie man es macht ?
 
Hi

Nutz du Visual Studio?
Wenn ja: Erstelle ein neues Projekt vom Typ Class Library.
Damit ist das wichtigste schon erledigt. In diesem Projekt kannst du jetzt entsprechende Klassen und Methode erstellen, die von außen aufrufbar sein sollen.
Wie unter C++ hast du die Modifier private, public und protected. Zusätzlich gibts unter .NET noch internal (innerhalb der Assembly)
 
Ja, nutze ich.
Ich komm aber nicht wirklich zurecht. Ich hab bisher noch wenig mit Klassen und Funktionen gemacht, drum wär mir ein Beispielprojekt wirklich hilfreich :/
 
Code:
using System;

using System.Collections.Generic;
using System.Text;

namespace SmartDeviceProject2
{
    public class Class1
    {
        //NIX
    }
    class Aufruf1
    {
        public Aufruf1()
        {
            //CODE
        }
    }
    class Aufruf2
    {
        public Aufruf2()
        {
            // CODE
        }
    }

und wie gesagt die DEF-Datei

EXPORTS
Aufruf1 @1
Aufruf2 @2


Aber nach dem erfolgreichen! erstellen, kennt er die Exports nicht, habe diese mit demPE-Explorer "suchen" lassen. :confused:
 
Hi

Du musst nichts exportieren. Du kannst die Dll direkt ein einem anderen Projekt referenzieren.
Ich kann dir nur nochmal ans Herz legen, dich erstmal einzulesen. Es wird in dem Buch alles erklärt.

Erstmal eine kleine Korrektur deines Codes:
C#:
using System;
using System.Collections.Generic;
using System.Text;

namespace SmartDeviceProject2
{
    public class Class1
    {
        public int Methode1
        {
              // do sth
              return sth;
         }

        public int Methode2
        {
              // do sth other
              return sthother;
         }
    }
}
 
Zurück