C#調(diào)用PortAudio.dll方法Pa_Initialize()失敗

C#調(diào)用PortAudio.dll方法Pa_Initialize()失敗,返回錯誤paUnanticipatedHostError

最近寫的一個項目中,遇到一個奇葩的問題,C#調(diào)用C++庫PortAudio.dll(因為使用到了PortAudio對音頻數(shù)據(jù)進行處理),網(wǎng)上下載的demo可以常使用,莫得任何問題,BUT,當我集成到我的系統(tǒng)之后,調(diào)用PortAudio的初始化方法Pa_Initialize()總是不成功,郁悶了,和demo的代碼完全一致,點搞???

折騰了我老半天,最后懷疑是反射的問題,沒錯,反射應該背這個鍋,原因在于我的模塊是通過反射加載到系統(tǒng)中的,而我調(diào)用PortAudio.dll的代碼寫在模塊中,通過反射加載的模塊再調(diào)用PortAudio的接口就會失敗。于是我把調(diào)用PortAudio的部分單獨寫在另一個dll中(這個dll不需要反射加載),然后我需要反射的模塊通過引用dll實現(xiàn)調(diào)用,這樣就完全沒問題。

記?。悍瓷淇赡軙е乱恍┠涿畹膯栴},尤其是在于C++交互的時候。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容