Unityでdllを2重に呼び出す

portaudioをunityで使いたくて,

MrMatthias/Portaudio-Unity · GitHub こことか

atsushieno/portaudio-sharp · GitHub こことかを参考にかいてたんですが,コールバックの登録まではうまく行くものの,いざstartすると落ちる. たぶんメモリリークとか起きてるんだろうなぁと思いつつも,それを直す手段が分からない.

というわけで,portaudioをラップするc++のdllを作って,そいつを読み込ませることにしました.

んで,やってみると・・・

DllNotFound!!!

どうやら,作成したdllから呼び出すportaudio.dllが読み込めてないご様子. 両方とも,Plugins以下においてあるんですが・・・.

解決策:システム環境変数にportaudio.dllのフォルダへのパスを追加する.

portauidoに限らず,dllを二重に読み込むときは,この方法で何とかなりそう.

ただ,もっとスマートな方法はないだろうか・・・

追記:

こことか見ると,プロジェクトの直下におけばいいって書いてある気がする. FFTW for C# DLLNotFoundExeption - Unity Answers

ここの記事にあるportaudioのC#のコールバックの書き方で,Unityからも呼び出せた. terurou.hateblo.jp