1

私はちょうど私の学士論文に取り組んでいます... libfftw3-3.dll (FFT ライブラリ) に依存する VST プラグイン (DLL ライブラリ) です。ラップトップ (64 ビット Win7 Ultimate) でテストしたところ、問題が見つかりました... この VST をどの音楽スタジオにもインポートできません...

PC と同様に、VstPlugins ディレクトリに VST プラグイン dll と libfftw3-3.dll をコピーしましたが、この VST をインポートしようとすると、システムから libfftw3-3.dll が見つからないというメッセージが表示されます。

これは COM オブジェクトではないため、regsvr32 を使用して登録することはできません...

私が間違っていることを教えてください。どうすればこれを機能させることができますか?

4

1 に答える 1

2

VSTはCOMコンポーネントです。これはクライアントプログラムによってロードされ、基になる呼び出しはCoCreateInstance()です。ここでの問題は、Windowsが、使用するDLLのクライアントプログラムに関連するディレクトリのみを検索することです。あなたは確かにDLLをEXEのディレクトリにコピーしませんでしたし、あなたもそうすべきではありません。

これはCOMの一般的な問題であり、問​​題を解決するのは簡単ではありません。Windowsのサイドバイサイドキャッシュはソリューションですが、それを整理する前に卒業します。システムPATH環境変数を変更することで、問題を解決できます。または、DLLをc:\ windows \ system32(64ビットバージョンのWindowsではsyswow64)にコピーするという必死の動き。卒業させるためだけに、気をつけてください。

それでも問題が解決しない場合は、知らない追加の依存関係がある可能性があります。CRT dllは典型的なものであり、/MDを有効にしてコードをコンパイルするとそれが得られます。SysInternalsのProcMonユーティリティを使用して、これらの依存関係を追跡できます。クライアントプログラムがDLLを検索しているのがわかります。またはプロファイルモードのDependencyWalker(F9)。

于 2012-04-17T00:39:19.520 に答える