Serielle Schnittstelle innerhalb einer DLL



  • Hallo,

    für die Kommunikation mit einer externen Gerät benötige ich die serielle Schnittstelle.
    Ich habe mir ein Dialog-Programm erstellt, mit dem auch die Kommuniaktion sehr gut funktioniert. Dazu wird ein Thread gestartet und immer wenn Daten von der seriellen Schnittgestelle empfangen werden, wird ein Event generiert, dass von der MessageMap aufgefangen und verarbeitet wird.

    Nun muss ich haber die komplette Kommunikation und Handling in eine DLL integrieren.
    Wenn ich aber meine Threads Starte bekomm ich eine Fehlermeldung.
    Nun meine Frage.
    Ist es überhaupt möglich in einer DLL mit MessageMaps zu arbeiten ?

    Gruß, Michi



  • Wäre vielleicht hilfreich wenn du schreibst was für nen Framework du verwendest...



  • Ich benutze VC++ 2003
    Die DLL ist eine MFC DLL.

    Michi



  • Ah. Und um was für einen Event geht es wohl? In C++ gibts keine Events. Verwendetst du die Helper Klassen für COM oder was meinst du mit Event? Rück mal mit ein paar mehr Infos raus und lass dir nicht alles aus der Nase ziehen.

    EDIT: ups, das klingt "böser" als ich es meine - bloss interessiert es mich halt nicht so erst raten zu müssen was du wohl meinst, damit es dann doch was anderes war, gelle 🙂



  • Er arbeitet mit "Message-Maps"... dann hat es aber nichts mit WinAPI zu tun sondern mit MFC...
    "Events" gibt es wiederum in der WinAPI...



  • Hallo,

    ich habe nicht gewusst - welche Unterschiede es gibt.
    O.k. hier sind jetzt hoffentlich die fehlenden Daten.
    In der MESSAGE_MAP steht das:

    ON_MESSAGE(WM_COMM_RXCHAR, OnCommunication)
    

    WM_COMM_RXCHAR ist als WM_USER+7 definiert

    In der Klasse für die serielle Schnittstelle wird ein empfangenes Byte folgendermaßen signalisiert:

    ::SendMessage((port->m_pOwner)->m_hWnd, WM_COMM_RXCHAR, (WPARAM) RXBuff, (LPARAM) port->m_nPortNr);
    

    Gruß,
    Michi


Anmelden zum Antworten