2012-04-17 3 views
1

Я просто работаю над своей диссертацией бакалавра ... Это плагин VST (библиотека DLL), которые зависят от libfftw3-3.dll (библиотека FFT). При тестировании на моем ноутбуке (64-битная версия Win7) я нашел проблему ... Я не могу импортировать этот VST в любую из музыкальных студий .... Библиотека DLL не найдена

Как и на моем ПК, я скопировал dll DLL и libfftw3-3 .dll в каталоге VstPlugins, но когда я пытаюсь импортировать этот VST, система сообщает мне, что libfftw3-3.dll не может быть найден.

Это не COM объект, поэтому я не могу зарегистрировать его с помощью regsvr32 ...

Можете ли вы помочь мне, что я делаю неправильно? И как я могу заставить это работать?

+0

P.S ... уже пытался добавить его в папку windows/System32 ... все еще не работает – Marty

ответ

2

A VST - компонент COM. Он загружается клиентской программой, основной вызов - CoCreateInstance(). Проблема здесь в том, что Windows будет искать только в каталогах, которые относятся к клиентской программе для используемой DLL. Вы, конечно же, не копировали DLL в каталог EXE, и не должны.

Это общая проблема с COM, решив его нелегко. Коробка с бок о бок Windows является решением, но вы закончите ее до того, как вы ее разобрали. Вы можете решить эту проблему, изменив переменную среды PATH системы. Или отчаянный ход, копируя DLL в c: \ windows \ system32 (syswow64 в 64-разрядной версии Windows). Только чтобы вы закончили, заметьте.

Если у вас все еще есть проблемы, у вас могут быть дополнительные зависимости, о которых вы не знаете. DLL CRT является типичной, вы получите это, когда вы скомпилируете свой код с/MD. Вы можете преследовать эти зависимости с помощью утилиты ProcMon от SysInternals, вы увидите, что клиентская программа ищет DLL. Или DependencyWalker в режиме профиля (F9).

+1

большое спасибо, я только что скопировал libfftw3-3.dll в домашнюю папку Music Studios. он работает сейчас ... – Marty

Смежные вопросы