0
我試圖從我寫的一些Julia代碼發送midi消息,但是我遇到了midiOutOpen函數的問題。我按照這個教程here,但我從函數獲得的輸出沒有意義。midiOutOpen返回一個未知錯誤,當我從Julia代碼中調用它時
這是我的朱莉婭代碼:
const CALLBACK_NULL = uint32(0x00000001)
function openoutputdevice(id::Uint32)
handle = uint32(0)
err = ccall((:midiOutOpen, :Winmm), stdcall,
Uint32,
(Ptr{Uint32}, Uint32, Ptr{Uint32}, Ptr{Uint32}, Uint32),
&handle, id, C_NULL, C_NULL, CALLBACK_NULL)
println(hex(err))
handle
end
手柄始終爲0,而這返回的錯誤是「10」。我已經對Windows頭文件進行了仔細的分析,這似乎與功能中可能出現的任何錯誤都不相符(請參閱here),所以我更傾向於認爲我正在映射ccall中錯誤的Julia數據類型。我已經做了很長時間,因爲我已經做了與C相關的任何事情,所以我希望這有明顯的錯誤。我見過的唯一奇怪的事情是,CALLBACK_NULL在mmsyscom.h中被定義爲0x000000001 - 一個9位數的十六進制數,儘管函數doc爲midiOutOpen的最終參數指定了一個DWORD。
任何想法?
我現在面臨着如此艱難的面目。謝謝。 –