2015-10-28 29 views
0

Carbon事件處理在OS X 10.11 El Capitan中仍然有效嗎?Carbon事件處理是否仍在El Capitan工作?

EventTypeSpec OPNEventType[3]; 
    OPNEventType[0].eventClass = getEventClass(); 
    OPNEventType[0].eventKind = getEventKindInsert(); 
    OPNEventType[1].eventClass = getEventClass(); 
    OPNEventType[1].eventKind = getEventKindRemove(); 
    OPNEventType[2].eventClass = getEventClass(); 
    OPNEventType[2].eventKind = getEventKindDataAvailable(); 
    handlerUPP = NewEventHandlerUPP(CBOpticonHandler); 

    // create the OPN interface, which is passed to our event handler 
    interface = CreateOPNInterface(); 

    OSStatus status = InstallApplicationEventHandler(handlerUPP, 3, OPNEventType, interface, NULL); 
    if (status != noErr) { 
     NSLog(@"%s: InstallApplicationEventHandler failed!", __PRETTY_FUNCTION__); 
     [self stop]; 
     return; 
    } 

此代碼在升級OS X後似乎無法工作。有什麼可以替代的?

+1

它以什麼方式不起作用?安裝處理程序時是否出現錯誤?如果是這樣,有什麼錯誤?還是你的處理程序從未被調用過?什麼是你正在嘗試處理的實際事件類,種類對?你確定那些正在發生?您是否嘗試過[事件追蹤](https://developer.apple.com/library/mac/technotes/tn2124/_index.html#//apple_ref/doc/uid/DTS10003391-CH1-SECHLTBEVENTTRACE)? –

+0

@KenThomases處理程序永遠不會被調用。事件類:OPTI eventKind:1。這是一款OPTICON OPN 2001條碼掃描器。由於運行gdb時出現了一些問題(我猜測應用程序簽名),因此我無法追蹤這些事件。 – aneuryzm

+0

我懷疑El Capitan不再支持這款舊掃描儀。但我想證明這一點。 – aneuryzm

回答

0

您是否使用隨SDK提供的.dylib或.framework?嘗試使用.dylib - 它不會崩潰並且InstallApplicationEventHandler成功完成。

但是,通信本身工作不正常,即隨SDK提供的演示項目無法在設備上讀取/設置時間,讀取條形碼(儘管應用程序檢測到掃描儀連接時/斷開)。我相信這與El Cap的CDC驅動程序的變化有關,因爲掃描儀本身就是CDC設備。

只是想知道 - 你有沒有運氣來解決這個問題,並讓OPN2001在El Capitan上工作?

+0

不,我不知道如何解決它。但是,我發現在打開應用程序後拔下插頭並插上掃描儀即可解決問題。這與Opticon提供的OPN掃描儀演示應用程序相同。 – aneuryzm

+0

@Patrick對於它的價值,Opticon發佈了一個更新的庫,以防其他人面臨這個問題,您可以在他們的網站上下載 –

相關問題