Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 3 von 3

Thema: libnodave: Woher kommt die "libnodave.net.dll"?

  1. #1
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    kann mir jemand sagen wie die libnodave.net.dll im Dot.NET Verzeichnis erstellt wurde?

    Ich schreibe gerade an einer kleinen Erweiterung mit libnodave (Quasi ein noDaveServer um die Daten an PLCSim durchzustellen). Deren Funktionen habe ich auch in eine dll ausgelagert, um diese mit C# wieder verwenden zu können.
    Die Dll habe ich erzeugt, jedoch bekomme ich bei Ausfürung in C# eine Meldung dass ein Assemblyverweis nicht gefunden wurde.

    In der .net.dll scheint auf jeden Fall einiges zu fehlen, da diese wesentlich kleiner als die eigentliche dll ist.

    Gruß
    Thomas
    Zitieren Zitieren libnodave: Woher kommt die "libnodave.net.dll"?  

  2. #2
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Normalerweise sind diese .net-DLLs nur reine Wrapper-DLLs die die Funktionaufrufe an die normale DLL durchreichen (daher auch die geringere Größe). Deshalb muss die eigentliche DLL ebenfalls vorhanden sein und gefunden werden.
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  3. #3
    Avatar von Thomas_v2.1
    Thomas_v2.1 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Rainer Hönle Beitrag anzeigen
    Normalerweise sind diese .net-DLLs nur reine Wrapper-DLLs die die Funktionaufrufe an die normale DLL durchreichen (daher auch die geringere Größe). Deshalb muss die eigentliche DLL ebenfalls vorhanden sein und gefunden werden.
    Ah, ich dachte es gibt irgenwo eine Möglichkeit diese aus einer DLL automatisch erzeugen zu lassen.

    Das InteropSignatureToolkit versucht ja zumindest einzelne Strukturen oder Funktionsprototypen umzusetzen. Aber so ganz ohne Handarbeit funktioniert das auch nicht.

    Einer C-Funktion übergebe ich als Parameter einen Zeiger auf ein Array aus Strukturen.
    In C sieht das so aus:
    Code:
    int waitForRequests(item_t item[], int * reqType)
    Ich hätte ja beide Parameter als ref deklariert, das Toolkit will daraus aber
    Code:
    public partial class NativeMethods {    
        /// Return Type: int
        ///item: item_t*
        ///reqType: int*
        [System.Runtime.InteropServices.DllImportAttribute("<Unknown>", EntryPoint="waitForRequests")]
    public static extern  int waitForRequests(ref item_t item, ref int reqType) ;
    }
    machen.

    Beim Aufruf bekomme ich jedoch eine IndexOutOfRangeException.

    Das Array muss Platz für 20 Items haben, was es aber auch hat.
    Code:
    item_t[] Item = new item_t[20];

Ähnliche Themen

  1. Antworten: 11
    Letzter Beitrag: 01.06.2011, 12:49
  2. LibNoDave aktuelle Version "hängt"
    Von Lazarus™ im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 24.02.2011, 22:58
  3. Antworten: 2
    Letzter Beitrag: 16.04.2009, 20:09
  4. woher kommen die "27648" bei analogausgängen
    Von roman79 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 24.02.2009, 07:46
  5. libnodave "Event"
    Von fubu16 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 10.08.2006, 15:17

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •