kbhit() in dll möglich?



  • Hi,

    ich habe wieder mal ein kleines Problem:
    Ich rufe aus VEE (Virtual irgendwas (ne echt nervice grafische Programmiersprache)) eine C-dll auf.
    In dieser dll wird ein Thread gestartet der kontinuierlich Meßwerte erfasst und wenn der Puffer voll ist eine sogenannte Callback-Funktion aufruft, in der auf die Meßwerte reagiert bzw. diese gespeichert werden können. Ich möchte die Messung gerne mittels Tastendruck abbrechen können (in dieser Callback-Funktion), und hatte dabei die Funktion kbhit() im Kopf:

    if (kbhit())
      stopMessung();
    

    Allerdings kommt anscheinend der Tastedruck nicht in der dll an, sondern im Hauptprogramm.
    Wäre nett wenn mir jemand nen Tipp geben könnte wie man sowas macht.
    Auf jeden Fall danke im Voraus!!!

    Gruß
    Threaddy



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hä,
    warum nach "Rund um die Programmierung"? Is doch eigentlich C++ (denk ich zumindest).
    Naja, wär trotzdem schön wenn mir jemand 'nen Tipp geben könnte!

    Danke!
    Gruß Threaddy



  • soweit ich weiß ist kbhit () eine Funktion aus den Dos-Zeiten. In Windows wirst du damit glaube ich nichts machen können, da musst du die mfc benutzen.



  • Hi,

    danke schon mal.
    Hab das mal in einem Win32-Konsolenprogramm getestet (hat da funktioniert).
    Ich denke ehr daß das daran liegt daß die Funktion in einer dll genutzt werden soll. Es muß doch irgendwie möglich sein eine Programmausführung mit z.B. ESC abzubrechen (mit welcher Funktion auch immer).

    Danke
    Gruß
    Threaddy



  • da gibts so eine lib, mit der du konsolenprograme programmieren kannst. Also Microsoft spezifisch, nicht die üblichen cout oder cin. Mit dieser Lib kann man dann auch die Bildschirmausgabe etwas feiner steuern, ebenso Keyboard und ich glaube auch Maus. Von daher, schau dich mal danach um.
    Es gibt auch termios, damit kannst du die Tastatureingabe und die Ausgabe besser kontrollieren, inwiefern das in Windows bzw. Konsolen in Windows funktioniert, kann ich dir leider nicht sagen.
    schau dir diesen und diesen Link an, wenn du mit termios in Windows arbeiten kannst und wenn du das willst 😉


Log in to reply