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

 
*.bpk + *.lib
MDM
Отправлено: 21.06.2004, 14:15


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







Создаю пакет, подключаю urlmon.lib (IsValidURL и т. д.), при компиляции BCB просит (настаивает) выкинуть его мотивируя тем, что "данный модуль уже содержится в vcl50.lib". Естественно linker говорит: — "не разрешенная внешняя ссылка IsValidURL".

Как быть?
(Одна белая в черный горох, другая черная в белый...)
olegenty
Отправлено: 22.06.2004, 06:52


Ветеран

Группа: Модератор
Сообщений: 2412



дизайнер иногда сам не знает, чего хочет. принудительно надо зацепить vcl50.bpl, как Required, а все ссылки на urlmon.lib вытереть из *.bpk руками.
olegenty
Отправлено: 22.06.2004, 06:53


Ветеран

Группа: Модератор
Сообщений: 2412



да, и после этого действа надо делать Build
MDM
Отправлено: 22.06.2004, 09:15


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







QUOTE
принудительно надо зацепить vcl50.bpl

vcl50.bpl (прим. vcl50.bpi) на месте...

QUOTE
а все ссылки на urlmon.lib вытереть из *.bpk руками

Зачем вытереть?
1. Я же говорю он сам их перед компиляцией выкидывает:
- "Remove urlmon.
Unit(s) urlmon were found in required package vcl50."
2. Разрешать ссылки на ф-ии из urlmon тоже как-то надо.

Пробовал и в блокноте *.bpk править и в Contains подключать urlmon.lib(urlmon.pas) и USELIB() них... не помогает???
AVC
Отправлено: 22.06.2004, 10:15


Ветеран

Группа: Модератор
Сообщений: 1583



У меня так работает
CODE

#include <urlmon.hpp>
#pragma link "urlmon.lib"
void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{
HRESULT hr = IsValidURL(NULL, L"http:\\www.cbuilder.ru", 0);

AnsiString str;
if (hr == S_OK) str = "Ok";
else if (hr == S_FALSE) str = "S_FALSE";
else str = "E_INVALIDARG";

ShowMessage(str + " (" + int(hr) + ")");
}

Путь к библиотеке прописан в параметрах проекта. Vcl50 — run time package
olegenty
Отправлено: 22.06.2004, 10:58


Ветеран

Группа: Модератор
Сообщений: 2412



да он некорректно это делает, не всё вытирает. я и говорю — руками вытри. у меня уже пару десятков раз такое бывало. ручная правка *.bpk приводила всё в порядок.
MDM
Отправлено: 22.06.2004, 11:17


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







QUOTE (AVC @ 22/06/2004, 11:17)
#pragma link "urlmon.lib"
Путь к библиотеке прописан в параметрах проекта. Vcl50 — run time package

Так тоже делал. Пакет собирается, но при компиляции проекта с этим компонентом таже фигня(неразрешенная внешняя ссылка).
AVC
Отправлено: 22.06.2004, 12:01


Ветеран

Группа: Модератор
Сообщений: 1583



Проверьте, какие rtbpl'и использует пакет, exe и остальные пакеты. Они должны соответствовать друг другу. Иногда лишние прописываются в bpk как говорил olegenty. Был случай, кода мне приходилось каждый раз отказываться оп предложения Builder'а добавить пакеты в rtbpl — только ы этом случае приложение работало. Еще поэкспериментирую — напишу, что получилось.

Отредактировано AVC — 22/06/2004, 13:24
AVC
Отправлено: 22.06.2004, 13:21


Ветеран

Группа: Модератор
Сообщений: 1583



Если все делать аккуратно, то все работает правильно. Да, кстати, и я и olegenty забыли упомянуть, что чиcтить bpk нужно ОБЯЗАТЕЛЬНО при не активном Buildere (по крайней мере для 5).
Вот выкладываю полный текст работающего примера и exe'шник с ним.

User Attached Image Скачать файл
URL_BPL.ARJ


MDM
Отправлено: 23.06.2004, 08:55


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







QUOTE
...Да, кстати,  и я и olegenty забыли упомянуть, что чиcтить bpk нужно ОБЯЗАТЕЛЬНО при не активном Buildere (по крайней мере для 5).

В общем Я так делаю всегда, но ... именно в этот раз нифига не получается.

QUOTE
Вот выкладываю полный текст работающего примера и exe'шник с ним.

За пример спасибо.
Теперь понял, что Я не сказал самого главного — компонент, который пытаюсь установить, на PASCAL. Пробовал добавить к *.bpk пустой unit и туда впердолить #pragma link "urlmon.lib" — компонент устанавливается, но при сборке приложения с ним опять "неразрешенная внешняя ссылка".
AVC
Отправлено: 23.06.2004, 09:01


Ветеран

Группа: Модератор
Сообщений: 1583



Можете послать мне компонент и пример его использования. По возможности повожусь с ним.
MDM
Отправлено: 23.06.2004, 09:21


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







QUOTE (AVC @ 23/06/2004, 10:03)
Можете послать мне компонент и пример его использования. По возможности повожусь с ним.

Я не тормоз, но не могу разобраться как в пост вставить файл (... а еще пакет собрать пытаюсь!).
Вот ссылка на компонент http://www.euromind.com/iedelphi/iedownload.htm.
AVC
Отправлено: 23.06.2004, 09:34


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE
как в пост вставить файл

Зарегистрироваться и все проблемы решаться сами собой.

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