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

Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 25 von 25

Thema: libnodave gibt nicht alle Handles wieder frei

  1. #21
    Registriert seit
    22.02.2007
    Ort
    Sponheim
    Beiträge
    190
    Danke
    3
    Erhielt 10 Danke für 9 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Bau doch eine TCP-Verbindung von der SPS zu deiner Applikation auf, dann kannst du dir die Daten aus dem SPS-Programm heraus schicken lassen und sparst dir die Zeit immer wieder die selben Daten anzufragen.

    In der SPS kannst du dann mit AGSEND / AGRECV arbeiten.
    Wie kann es sein, dass am Ende des Geldes noch Monat übrig ist?
    Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück!
    engbarth.es

  2. #22
    Registriert seit
    20.05.2009
    Beiträge
    32
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ist auch eine Variante, über die ich nachgedacht habe. Es muss dann aber bei Änderungen/Anpassungen auch das SPS-Programm angepasst werden. Dies ist vom Kunden nicht so gewünscht. Und bei diesem Projekt ist es so, dass das SPS-Programm jemand anders schreibt.
    Wenn die Klügeren immer nachgeben, geschieht nur das, was die Dummen wollen

  3. #23
    Registriert seit
    17.02.2006
    Ort
    Holland
    Beiträge
    47
    Danke
    23
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo,

    Ich denke das deine applikation nicht in die selbe threat zuruck komt.

    du kannst vielleicht die funktion "Invoke" benutzen.

    Hier is ein link fur was extra information.

    http://msdn.microsoft.com/en-us/library/zyzhdc6b.aspx


    gruss Ruud
    **gruss aus Holland** Wieso SchreibFehler???
    Zitieren Zitieren Thread, ivoke  

  4. #24
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Manni01 Beitrag anzeigen
    Das kann ich so in .NET leider nicht verwenden. .NET hat da einen anderen Ansatz. Trotzdem danke für Deinen Tipp.

    Hab's jetzt nochmal so probiert:
    Die Funktion davefree über den Wrapper (C#) zugänglich gemacht:

    [DllImport("libnodave.dll"/*, PreserveSig=false*/)]
    public static extern int daveFree(IntPtr p);

    Die Funktion dann so aufgerufen:

    libnodave.daveFree(Me.daveConn.pointer)
    libnodave.daveFree(
    Me.daveInterface.pointer)

    Hat nichts verändert, war auch nur ein eher halbherziger Versuch.

    Gruß, Manni
    Die Funktion daveFree sollte nichts bringen und ist daher auch nicht in libnodave.NET.dll enthalten. Der Grund ist, daß diese Funktion automatisch im Destruktor von Pseudopointer, der Basisklasse von daveInterface und daveConnection, aufgerufen wird.

  5. #25
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von - chris - Beitrag anzeigen
    Um den Socket freizugeben dienen diese Befehle
    aus der Windows API:

    closesocket
    WSACleanup

    http://msdn.microsoft.com/en-us/library/ms737582(VS.85).aspx
    http://msdn.microsoft.com/en-us/library/ms741549(VS.85).aspx

    In PureBasic können die Befehle direkt verwendet werden.
    So habe ich es mir ursprünglich gedacht. Schaut euch aber mal diesen Thread an. Der Themenstarter hatte auch Probleme, handles wieder zu schließen. Ich habe ihm daher eine Testversion gemacht, in der closesocket aus Libnodave aufgerufen wird. Mein Verdacht ist das winsock.dll irgendwie Buch führt, aus welchem Kontext handles geöffnet wurden und es daher wichtig ist, sie aus demselben Kontext wieder freizugeben.

    http://www.sps-forum.de/showthread.p...bnodave&page=2

    Eine erweiterte Version von libnodave.dll findet sich dort im angehängten Archiv.

Ähnliche Themen

  1. Alle Jahre wieder... Stress im Ausland..
    Von h.scholli im Forum Stammtisch
    Antworten: 5
    Letzter Beitrag: 15.12.2008, 08:29
  2. Antworten: 15
    Letzter Beitrag: 24.01.2007, 11:41
  3. schon wieder Ethernet/Libnodave
    Von leo im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 04.07.2006, 08:46
  4. Antworten: 2
    Letzter Beitrag: 11.10.2004, 14:09
  5. Antworten: 4
    Letzter Beitrag: 22.09.2004, 22:01

Stichworte

Lesezeichen

Berechtigungen

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