C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Перегрузка процедур
Azret
Отправлено: 27.06.2004, 21:15


Не зарегистрирован







Hi, Great ALL!
У меня следующая проблема.
В файле "mmsystem.h", который входит в состав Билдера объявлена процедура PlaySound.
Я использую её в своём проекте.
После того, как я поставил набор компонентов Eldos ELPack 4.01, при компиляции выдаётся ошибка Linker'a:
Unresolved external '__fastcall Eltools::PlaySoundA(char *, unsigned int, unsigned int)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\DEKANAT SYSTEM\MAIN.OBJ
Я так предполагаю, что это ошибка связана с перегрузкой процедур.
Есть, конечно, "грубый" способ — удалить объявление этой процедуры в файле ElTools.

Подскажите, пожалуйста, есть ли способ явно обратится к процедуре объявленной в в "mmsystem", например, mmsystem::PlaySound?
Спасибо.
Vlad
Отправлено: 28.06.2004, 08:01


Машинист паровоза

Группа: Участник
Сообщений: 231



В заголовке попробуй поменять местами #include c подключением компонентов Eldos ELPack. В начале Eldos ELPack, а затем mmsystem.h. У меня такая же лажа была с другой библеотекой, пока не поменял местами подключение *.hpp and дополнительнойй бибилиотеки *.h.
UA_Freeman
Отправлено: 29.06.2004, 10:03


Дежурный стрелочник

Группа: Участник
Сообщений: 31



Это связано не с перегрузкой, а с тем что PlaySound в mmsystem.h объявлен как макрос — яркий пример плохого стиля smile.gif

Вернуться в Вопросы программирования в C++Builder