Zum Inhalt springen

[C#] Eine eigene DLL-Datei einbinden und aufrufen


hapke

Empfohlene Beiträge

Schön guten Tag,

ich habe ein Problem eine selbst erstellte DLL-Datei einzubinden und zu verwenden. Der Name der Datei ist ganz einfach "dll.dll". Das ganze Projekt dient im Moment nur zum testen der Funktion bevor es dann richtig los geht. Nur damit sich hier niemand wundert, warum die Funktion nur einen Wert zurück gibt.

Entwicklungsumgebung ist das Microsoft Visual Studio 2008 in der Sprache C#

Code meiner DLL-Datei:

namespace dll

{

    public class dll

    {

        static public int test(int h)

        {

            return h;

        }

    }

}
Code meiner kleinen Exe-Datei:
using System;

using System.Windows.Forms;

using System.Runtime.InteropServices;


namespace dllTest

{

    public partial class Form1 : Form

    {

        [DllImport("dll.dll", EntryPoint="test")]

        static extern public int test(int h);


        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {

            int retval = test(333);

            MessageBox.Show("Wert: " + retval.ToString() + "");

        }

    }

}

Fehlermeldung:

System.EntryPointNotFoundException wurde nicht behandelt.

Message="Der Einstiegspunkt test wurde nicht in der DLL dll.dll gefunden."

Ich habe auch schon versucht meine dll.dll mit dem DebendencyWalker zu öffnen. Leider kam dabei auch nicht sehr viel heraus.

Warning: At least one delay-load dependency module was not found.

Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.

Wobei ich mir auch nicht so sicher bin, ob sich die Meldung wirklich auf meine Datei bezieht.

Ich bin auf jeden Fall ziemlich ratlos und hoffe das mir hier jemand helfen kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das dll Projekt wird auch wirklich als Dll-Projekt kompiliert?

Soweit ich das beurteilen kann schon. Ich bekomme zumindest als Ergebnis beim Projekt erstellen meine DLL-Datei. Oder muss ich da noch mehr machen?

Ich würde an der stelle lieber mit Verweißen arbeiten.

Meine Überlegung bei dem dynamischen einbinden war, die DLL Dateien nur einzubinden, wenn ich die Classe / die Methoden daraus auch wirklich benötige.

Ich habe also mein Switch und dann soll bei den entsprechenden Parametern die Aktion X ausgeführt werden. Für die Aktion X, gibt es eine X.dll die die Classe mit den Methoden etc enthält. Wenn die Aktion Z ausgeführt werden soll, wird die X.dll nicht benötigt.

Von daher sehe ich es als unnütz, diese Datei beim Aufruf der Anwendung trotzdem zu laden.

Nachzuvollziehen oder übersehe ich etwas grundlegendes?

Gruß Hapke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...