Laden...

Und noch mal Dll's einbinden

Letzter Beitrag vor 19 Jahren 8 Posts 2.293 Views
Und noch mal Dll's einbinden

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