Moin,
habe noch folgendes Problem mit meiner Dll.
Code der EXE:
...
[DllImport("test2.dll")]
public static extern void test();
private void button2_Click(object sender, System.EventArgs e)
{
test();
}
.....
Code der Dll:
using System;
using System.Windows.Forms;
namespace test2
{
public class Class1
{
public void test()
{
...........
MessageBox.Show("what ever");
..........
}
}
}
Das Programm wird ausgeführt. Ich erhalte jedoch eine Fehlermedlung:
"Einspringount 'test' nicht in der Dll 'test2.dll' gefunden."
nu bin ich überfragt.
Was stimmt mit der Dll nicht?
Gruß
Niecheck
Ich vermute mal folgendes:
Der Namespace variiert zwischen deiner Dll und deinem ausführendem Code.
Dann musst Du die Methode so aufrufen:
test2.test();
Schau dir mal genau die namespaces an!
Ciao
Norman-Timo
A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”
Hallo Niecheck,
DllImport brauchst du nur, um nicht-.NET-Dlls einzubinden. Du kannst das also einfach weglassen.
herbivore
natürlich könnte ich die Dll einfach über "Verweise" mit einbinden. Und sie dann mit:
test2.class1 t = new test2.class1();
t.test();
einfach aufrufen. So hat ich es erst. Das funzt auch wunderbar.
Wollt eben nur mal die Import-Methode ausprobieren....
Ciao
Hallo Niecheck,
DllImport kannst du dafür wie gesagt nicht verwenden. Wenn du es ausprobieren willst, musst du versuchen eine normale C-Dll einzubinden.
herbivore
stehe hier jedoch vor einem schönheitsfehler. Ich hätte gern angegeben, wo sich die Dll befindet. Denn mit der jetzigen Methode muss sie im gleichen Verzeichnis wie die Exe liegen. Das war das eigendliche Problem....
Aber das kann ich doch sicher auch irgendwo definieren?!
Hallo Niecheck,
sie kann liegen wo sie will, solange sie in einem Verzeichnis liegt, dass in der Umgebungsvariable PATH aufgelistet ist.
herbivore
ahh! so gefällt mir das !!!
DANKE!
niecheck