Frage

Wir versuchen, mit einem USB -Hiddevice zu kommunizieren. Dieses Gerät funktioniert gut in Windows, wo wir einen Bericht senden und einen Bericht mithilfe von Verwendung erhalten können WriteFile() und ReadFile().

Auf dem Mac versuchen wir, mit dem Gerät mit dem Gerät zu versetzen setReoprt() und getReport(). Aber getReport() Gibt keine Daten zurück, sondern ein Fehler.

Was ist das Unrecht in der Anwendung?

War es hilfreich?

Lösung

Um asynchrones Verhalten zu nutzen, muss die Ereignisquelle mit GetaSynceVentsource zu einer Laufschleife hinzugefügt werden.

Der obige Hinweis ist Teil des Kommentars von SetReport. Möglicherweise müssen Sie den Runloop -Mechanismus von Runloop in Mac OS zuerst lernen.

Da ist es unmöglich, den Mechanismus hier zu erklären. Die folgenden Funktionen und Bestellungen können Ihnen helfen, Ihnen zu codieren, wenn Sie sich mit dem vertraut machen Runloop. (Versuchen Sie, in Google nach "Cfrunloop" zu suchen)

CfrunloopgetCurrent ();
Cfrunlooprun ();
Cfrunloopaddsource (Cfrunloopref RL, CfrunloopsourCeref -Quelle, CFstringRef -Modus);
Cfrunloopstop (cfrunloopref rl); (Ich nenne diese Funktion normalerweise in der Rückrufmethode)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top