私のオーディオ プラグインは、サポートされているすべてのフォーマット (AU や VST など) のエクスポートを含むバイナリのバンドルです。まったく同じバンドル(拡張子が異なるだけ)をコピーします
/Library/Audio/Plug-Ins/Components for AU
and
/Library/Audio/Plug-Ins/VST for VST
ユーザーが VST プラグインと言うと開くと、正常に動作します。しかし、後で彼が AU プラグインを開くと、クラッシュし、スタック トレースからは、1 つのモジュールが別のモジュールを呼び出しているなど、完全に混乱しているように見えます。私は当初、これは古き良き Cocoa グローバル クラス名であり、Mac OS X の設計上の大きな欠陥であると考えていましたが、 VST は Carbon を使用しているため、そうではないようです。
AUモジュールをまったくロードしていないようです。AUインターフェースだけで、VSTモジュールから別のコンポーネントを作成しただけです! そこにグローバル変数があるので、そのアドレスをログに記録しましたが、それは両方のプラグインで同じなので、同じモジュールでなければなりませんよね?
残念ながら、初期化とグローバルが異なるため、それぞれに適切なものをロードする必要があります。では、OSに2番目のものを適切にロードさせるにはどうすればよいですか?
ありがとう!