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