Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Unresolved external при линковке .DLL

Ответить
Настройки темы
Unresolved external при линковке .DLL

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Всем привет!
Я решил написать DLL. Начало было удачным, тестовая функция с примером сложения двух чисел пошла на ура.
Потом я использовал некоторые компоненты в функции — создание, использование и удаление.
(Это был компонент Indy: TIdTCPClient)
И беда случилась при линковке:

[Linker Error] Unresolved external 'Idtcpclient::TIdTCPClient::' referenced from D:\PROJECTS\CONNECT\CLIENT.OBJ
[Linker Error] Unresolved external '__fastcall Idtcpclient::TIdTCPClient::TIdTCPClient(Classes::TComponent *)' referenced from D:\PROJECTS\CONNECT\CLIENT.OBJ


Аналогично шла ругань по поводу использования строк.


Причем пока я не написал в .h файле строки типа

int __declspec(dllexport) __cdecl CreateClient(void* Client, char* RemoteHost, int RemotePort);

то компилировался и линковался проект без проблем, поскольку в .cpp были соответствующие инклуды #include <IdTCPClient.hpp>.

Как сделать, чтобы линкер находил и резолвил для .dll все, что надо?

Потому как в обычной ехе-программе все было бы ок.

Отправлено: 18:43, 15-03-2005

 

Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


я обнаружил, что если стоят галочки "build with runtime pakages" и "use dinamic rtl", то компиляция и линковка на ура. если убрать галочки, то выходят эти ошибки. но зачем мне это в уже готовой длл? я ж не буду с собой таскать кучу билдеровских файлов?!

Отправлено: 20:35, 15-03-2005 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 29
Благодарности: 0

Профиль | Отправить PM | Цитировать


Текущие проблемы решены таким образом:

Я создал проект DLL wizard.
Потом написал код с использованием нужных мне компонент.
Далее просто добавил нужные .obj файлы в проект, которые поочередно требовались при компиляции и линковке.
И галочки "build with runtime pakages" и "use dinamic rtl" отключены, конечно же.
Проверил - работает, моя dll создала соединение с Indy-сервером, приняла и передала данные.

Потом проверю, как эта dll будет работать в программе на Visual C++.
Надеюсь, проблем уже не будет..........

Всем спасибо

Отправлено: 18:14, 16-03-2005 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Unresolved external при линковке .DLL

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
External SATA port alleclf Материнские платы и память 3 14-08-2009 17:42
External HDD Aleksey Potapov Microsoft Windows NT/2000/2003 7 30-07-2008 15:45
Разное - [решено] dwmapi.dll; mpr.dll; shlwapi.dll Reset5 Microsoft Windows 2000/XP 2 14-06-2008 16:31
Приобретение - Практика использования External Connector - help! Nick_44 Лицензирование продуктов Microsoft 1 29-10-2007 17:58
Help!!! error LNK2001: unresolved external symbol Wolande Программирование и базы данных 4 30-08-2003 18:47




 
Переход