美文网首页
C#调用PortAudio.dll方法Pa_Initialize

C#调用PortAudio.dll方法Pa_Initialize

作者: AnuoF | 来源:发表于2019-07-25 16:20 被阅读0次

C#调用PortAudio.dll方法Pa_Initialize()失败,返回错误paUnanticipatedHostError

最近写的一个项目中,遇到一个奇葩的问题,C#调用C++库PortAudio.dll(因为使用到了PortAudio对音频数据进行处理),网上下载的demo可以常使用,莫得任何问题,BUT,当我集成到我的系统之后,调用PortAudio的初始化方法Pa_Initialize()总是不成功,郁闷了,和demo的代码完全一致,点搞啊?

折腾了我老半天,最后怀疑是反射的问题,没错,反射应该背这个锅,原因在于我的模块是通过反射加载到系统中的,而我调用PortAudio.dll的代码写在模块中,通过反射加载的模块再调用PortAudio的接口就会失败。于是我把调用PortAudio的部分单独写在另一个dll中(这个dll不需要反射加载),然后我需要反射的模块通过引用dll实现调用,这样就完全没问题。

记住:反射可能会导致一些莫名其妙的问题,尤其是在于C++交互的时候。

相关文章

网友评论

      本文标题:C#调用PortAudio.dll方法Pa_Initialize

      本文链接:https://www.haomeiwen.com/subject/krghrctx.html