Feststellen, ob ein bestimmter COM-Port existiert



  • Hallo!

    Gibt es eine einfache Möglichkeit festzustellen, ob ein COM-Port existiert oder nicht?

    Mein Problem ist nämlich Folgendes:
    Ich spreche ein USB-Gerät über einen virtuellen COM-Port an. Sobald das Gerät am Computer angeschlossen und eingeschaltet wird, erstellt der Gerätetreiber den virtuellen COM-Port. Den Port zu öffnen und die Kommunikation sind kein Problem. Probleme gibt es erst, wenn das Programm läuft (also der Port geöffnet ist) und das USB-Gerät plötzlich ausgesteckt/abgeschaltet wird, weil dann auch der Port nicht mehr existiert. Dann hab ich nämlich einen im Programm gültigen Handle (da der Port ja vorhanden war, als er geöffnet wurde) auf einen nicht mehr existierenden Port. 😞



  • 1. Handle vor der Verwendung prüfen
    oder
    2. return value der Funktion, die das Handle verwendet, auswerten mit: GetLastError() (und mit FormatMessage lesbar machen).

    Blackbird



  • Hallo Blackbird,

    danke für die Antwort. Die erste Methode funtioniert bei mir nicht, weil der Handle von Windows nicht zurückgesetzt wird, wenn das Gerät abgeschaltet wird und ich deshalb programmintern immer noch einen gültigen Handle habe.

    Ich habe deshalb die zweite Methode in Kombination mit Exceptions verwendet und konnte damit mein Problem lösen. 🙂


Anmelden zum Antworten