hapke Geschrieben 25. April 2008 Teilen Geschrieben 25. April 2008 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 25. April 2008 Teilen Geschrieben 25. April 2008 Erm... Das dll Projekt wird auch wirklich als Dll-Projekt kompiliert? Ich würde an der stelle lieber mit Verweißen arbeiten. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hapke Geschrieben 25. April 2008 Autor Teilen Geschrieben 25. April 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 25. April 2008 Teilen Geschrieben 25. April 2008 Du versuchst eine managed .net dll wie eine native dll einzubinden. Das funktioniert so nicht (schau Dir die Dokumentation zu DllImport an). Füge dem Projekt stattdessen eine reference auf die benötigte managed dll hinzu. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.