Laden...

Und noch mal Dll's einbinden

Erstellt von Niecheck vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.251 Views
N
Niecheck Themenstarter:in
4 Beiträge seit 2005
vor 18 Jahren
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

4.506 Beiträge seit 2004
vor 18 Jahren

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!”

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Niecheck,

DllImport brauchst du nur, um nicht-.NET-Dlls einzubinden. Du kannst das also einfach weglassen.

herbivore

N
Niecheck Themenstarter:in
4 Beiträge seit 2005
vor 18 Jahren

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

49.485 Beiträge seit 2005
vor 18 Jahren

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

N
Niecheck Themenstarter:in
4 Beiträge seit 2005
vor 18 Jahren

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?!

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo Niecheck,

sie kann liegen wo sie will, solange sie in einem Verzeichnis liegt, dass in der Umgebungsvariable PATH aufgelistet ist.

herbivore

N
Niecheck Themenstarter:in
4 Beiträge seit 2005
vor 18 Jahren

ahh! so gefällt mir das !!!

DANKE!

niecheck