AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Event für Funktion in einer "fremden" DLL
Thema durchsuchen
Ansicht
Themen-Optionen

Event für Funktion in einer "fremden" DLL

Ein Thema von hirnstroem · begonnen am 25. Feb 2008 · letzter Beitrag vom 26. Feb 2008
Antwort Antwort
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

Re: Event für Funktion in einer "fremden" DLL

  Alt 26. Feb 2008, 07:33
Wird auch so gemacht. Wenn eine Weile lang (500 ms) nichts empfangen wird, geht der Thread in einen langsamen Modus, schläft also mehr oder weniger nur und wacht dann auf, wenn wieder viele Daten kommen.

Allerdings habe ich gerade gesehen, dass bereits ein neuer Treiber, welchem man beibringen kann, eine bestimmte Funktion im Programm aufzurufen.

Allerdings verstehe ich noch nicht ganz wie man diese benutzt, deshalb hier ein Paar Zeilen Beschreibung:

int setReceiveCallBack( CANHANDLE h, LPFNDLL_RECEIVE_CALLBACK cbfn )

With this method one can define a function that will receive all incoming messages. Note
that canusb_Read will not work after this call. You can make it work again by calling
this method and set cbfn equal to NULL.

The callback function should be defined as

void fn( CANMsg *pMsg );

Note: that the channel has to be open to be able to set a callback function.

---

Ich definiere nun also eine Methode, welcher ein Pointer auf CANMsg übergeben werden kann:

procedure OnReceiveMessage(var MsgBuf: CANMsg); Dann eine Funtion, mit welcher ich der Treiber DLL angeben kann, welche Methode in meinem Programm sie aufrufen solle:

  function canusb_setReceiveCallBack(h: DWord; LPFNDLL_RECEIVE_CALLBACK: Pointer) : CANUSB_Result; stdcall ; External 'canusbdrv.dllname 'canusb_setReceiveCallBack'; Hier bin ich mir schon nicht mehr sicher, ob dieses LPFNDLL_RECEIVE_CALLBACK nun ein Pointer oder was auch immer sein soll, werde es wohl oder übel noch irgendwie herausfinden müssen...ausser es sagt jemand, dass das ganz einfach sei und mir sogar noch ein Paar Tipps liefert -.-
inde deus abest
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz