Laden...

Problem mit Zugrif auf Klasse in älterer DLL

Erstellt von SunboX vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.054 Views
S
SunboX Themenstarter:in
120 Beiträge seit 2005
vor 18 Jahren
Problem mit Zugrif auf Klasse in älterer DLL

Hi, ich habe eine ältere DLL, welche in VB geschrieben wurde. Nun wollte ich die Funktionen in dieser DLL, b.z.w. in der Klasse in der DLL benutzen. Allerdings ist es nur bei dem Versuch geblieben. Hier mein Code, die Klasse sowie der Fehler, den ich bekomme. Könnt ihr mir sagen, wie ich auf die Klasse in c# zugreifen kann?

Mein Zugriff:

public partial class Form1 : Form
{
    // Funktion um das USB Gerät zu initialisieren
    [DllImport("aquaero.dll")]
    extern static bool USBInit();

    // Roh-Daten-String von USB Gerät lesen
    [DllImport("aquaero.dll")]
    extern static string DirectReadFromDevice(int deviceNumber, bool success);

    // Alle angeschlossenen USB Geräte gleichen Typs
    [DllImport("aquaero.dll")]
    extern static Array DeviceArray();

    public Form1()
    {
        InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        // Aquaero initialisieren
        bool success = USBInit();

        // Aquaero finden
        for (int i = 0; i < DeviceArray().Length; i++)
        {
            this.textBox1.Text = DirectReadFromDevice(i, success);
        }
    }
}

Der Fehler:

\************** Ausnahmetext **************
System.EntryPointNotFoundException: Der Einstiegspunkt USBInit wurde nicht in der DLL aquaero.dll gefunden.
   bei WindowsApplication1.Form1.USBInit()

Die Klassenstruktur in der DLL:

Wäre super, wenn mir das jemand kurz erklären könnte. Den Webcast aus der msdn zu dem Thema habe ich mir schon angeschaut. Mein Problem konnte ich damit leider nich lösen.

Ciao SunboX

Actionscript ist die Möglichkeit, postmaterielles Basteln zum Lebensstil zu machen.

Künstliche Intelligenz ist leichter zu ertragen, als natürliche Dummheit!

F
10.010 Beiträge seit 2004
vor 18 Jahren

Das Problem ist, das die VB-Dll eine COM-Componente ist, und keine
herkömmliche DLL.

Also einfach als COM-Komponente unter referenzen einbinden und gut.
Ein DllImport ist unnötig.