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

Ergebnis 1 bis 4 von 4

Thema: Libnodave mit VB2005

  1. #1
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe ein Problem mit daveReadManyBytes. Beim Versuch, mit dieser Funktion den DB1 auszulesen, kommt es zu einem Fehler.
    Benutze ich daveReadBytes, dann klappt das, wenn z.B. nur 100 Bytes gelesen werden. Ich habe in einem Forums-Beitrag aus dem Jahr 2005 gelesen, dass die Funktion fälschlicherweise mal mit "daveManyReadBytes" bezeichnet wurde. So war es auch in meinem Modul. Deshalb habe ich sie in daveReadManyBytes umbenannt. Das nützt aber auch nichts. Nur die Fehlermeldung ändert sich.

    Diese Aufruf erzeugt den Fehler:
    Code:
    res = daveReadManyBytes(dc, daveDB, 1, 0, 100, Buffer(0))
    Dazu gehört die Funktionsdeklaration:
    Code:
    Public Declare Function daveReadManyBytes Lib "libnodave.dll" (ByVal dc As Integer, ByVal area As Integer, ByVal areaNumber As Integer, ByVal start As Integer, ByVal numBytes As Integer, ByRef buffer As Integer) As Integer
    Ich lese aus dem DB1 die ersten 100 Bytes. Die Deklaration für den Buffer lautet: Dim Buffer(9999) as Byte.


    Gruß
    Earny
    Zitieren Zitieren Libnodave mit VB2005  

  2. #2
    Registriert seit
    27.11.2005
    Ort
    im Osten
    Beiträge
    1.183
    Danke
    141
    Erhielt 271 Danke für 248 Beiträge

    Standard

    probier es mal damit

    Code:
    res = daveReadManyBytes(dc, daveDB, 1, 0, 100, Buffer)
    und in der Deklaration damit

    Code:
    Public Declare Function daveReadManyBytes Lib "libnodave.dll" (ByVal dc As Integer, ByVal area As Integer, ByVal areaNumber As Integer, ByVal start As Integer, ByVal numBytes As Integer, ByRef buffer() As byte) As Integer
    wobei ich mir jetzt nicht sicher bin, ob nicht auch deine Deklaration "ByVal dc As Integer" falsch sein könnte.
    Geändert von MW (25.02.2010 um 22:46 Uhr)
    Es ist nicht schwierig, mit noch nicht erreichten Zielen zu Leben; schwierig ist, ohne Ziele zu Leben !
    (Günther Kraftschik)

  3. Folgender Benutzer sagt Danke zu MW für den nützlichen Beitrag:

    Earny (26.02.2010)

  4. #3
    Earny ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.04.2008
    Beiträge
    389
    Danke
    85
    Erhielt 39 Danke für 24 Beiträge

    Standard

    Hallo MW,

    ich habe den Fehler dank Deiner Hilfe gefunden. In der Deklaration muss es beim letzten Parameter lauten "ByRef Buffer as Byte". Ich hatte da "ByRef Buffer as Integer" stehen. Jetzt funktioniert das.

    Ich hätte da nochmal eine grundsätzliche Frage zur Wrapper-dll (libnodave.net.dll). Ich arbeite mit VB2005 (gehört ja auch zur VB.Net-Gruppe) und verzichte jetzt ganz auf den Wrapper. Ich weiß ehrlich gesagt nicht, wozu der überhaupt gut sein soll. Ich will nicht undankbar erscheinen und nochmal betonen, dass ich libnodave schon als tolles Werkzeug ansehe, um beispielsweise aus einer Hochsprache heraus kostenlos auf eine S7 zugreifen zu können. Oder bringt der Wrapper noch Vorteile mit sich, die ich noch nicht entdeckt habe?
    Wenn ich auf den Wrapper verzichte, spreche ich die Konstanten, Prozeduren und Funktionen von libnodave in einem Modul oder in einer Klasse an, und das funktioniert problemlos (von Anfängerproblemen abgesehen). Ich muss nur den alten Modul12 nehmen und den Datentyp long (= 32-Bit-Integer bei VB6.0) umstellen auf Integer (= 32-Bit-Integer bei VB.Net) und sonst noch ein paar kleine Änderungen vornehmen. Ich habe aber jederzeit den Überblick, welche Konstanten, Prozeduren und Funktionen libnodave zur Verfügung stellt.


    Gruß
    Earny

  5. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guckst du hier: http://www.sps-forum.de/showthread.php?t=33647

    Gehört auch nicht in diesen Thread, also nächstes Mal bitte einen neuen aufmachen oder zuerst besser im Forum suchen!
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 09.09.2010, 00:27
  2. ÄÖnderungen am libnodave.net.cs File von libnodave
    Von Jochen Kühner im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 12.05.2010, 16:56
  3. LibNoDave unter VB.Net ohne libnodave.net.dll
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 09.03.2010, 18:57
  4. Libnodave mit VB2005
    Von Earny im Forum Hochsprachen - OPC
    Antworten: 1
    Letzter Beitrag: 23.02.2010, 18:21
  5. Klöckner Moeller PS 306 SUCOM A VB2005
    Von Heti im Forum Sonstige Steuerungen
    Antworten: 5
    Letzter Beitrag: 30.09.2008, 21:06

Lesezeichen

Berechtigungen

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