Использование компонента Delphi в ошибке компоновки Cbuilder - PullRequest
2 голосов
/ 14 ноября 2011

Я скачал компонент VCL "Wave Audio Package" отсюда http://www.delphiarea.com/downloads/, пакет компонентов предназначен для Delphi, и мне нужно использовать его со стороны CBuilder (я использую RAD Studio XE), после настройки, настраивающейdproj (в генерации выходного файла C ++ я установил «Генерировать все файлы C ++ Builder (включая библиотеки пакетов)») Мне удалось заставить компоненты VCL работать на стороне CBuilder.

Но все еще есть проблемы, я могу 'не может использовать его «глобальную» функцию (в пространстве имен Waveutils: :), например Waveutils :: SetPCMAudioFormatS, Waveutils :: GetWaveAudioFormat и т. д. Процесс компиляции прошел нормально, но были проблемы со связью, сказав, что компоновщик не может найти ссылку на эту функцию,даже после того, как я добавил библиотеку 'WA2010.lib' (которая генерируется, когда я собирал компонент со стороны delphi).Я сбросил WA2010.lib с помощью TDUMP, похоже, он содержит код для функций.

Есть ли шаги, которые я пропускаю?Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 13 февраля 2012

Если компоненты с открытым исходным кодом, используйте их как динамический экземпляр. Имейте в виду:

не устанавливайте компоненты в C ++ Builder!

это зло. Добавьте компоненты компонентов в ваше приложение и создайте экземпляр:

TWaveComponent *waveComponent; // in global scope

//in form constructor:
waveComponent = new TWaveComponent(Owner); 
waveComponent->property1 = value1;
waveComponent->property2 = value2;
waveComponent->OnEvent = myEventHandler;
...
...