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

 
Проблема с LoadChartFromFile
Simplex
Отправлено: 27.06.2005, 14:27


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







Народ! Есть такая проблема! Я использую ф-ии LoadChartFromFile и SaveChartToFile в C++Builder 5.0. При компоновке с package всё компилится, компонуется нормально, а когд я хочу сделать релизную версию и убираю опцию Build with runtime runtime packages, то компоновщиу выдаёт две ошибки:
[Linker Error] Unresolved external '__fastcall Teestore::LoadChartFromFile(Chart::TCustomChart *&, const System::AnsiString)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\TEMP\PLOT_UNIT.OBJ
[Linker Error] Unresolved external '__fastcall Teestore::SaveChartToFile(Chart::TCustomChart *, const System::AnsiString)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER5\TEMP\PLOT_UNIT.OBJ
Я методом научного тыка определил, что если компоновать с TEEUI50 и TEE50, то подобной ошибки не возникает. Но при этом, естесственно, на любом другом компе, где нет Builder'а эти ф-ии работать не будут, т.к. не будет библиотек.
Подскажите, как можно решить эту проблему или любые другие альтернативные способы решения.
Заранее благодарен.
AVC
Отправлено: 29.06.2005, 10:01


Ветеран

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



QUOTE

когд я хочу сделать релизную версию и убираю опцию Build with runtime runtime packages

Какое отношение имеет опция Build with rtp к "релизной версии"? Этот чекер  — вопрос политики распространения. У вас две возможности — встроить библиотеку в приложение или поставлять свое приложение вместе с внешней библиотекой.
Dimka
Отправлено: 29.06.2005, 11:30


Ученик-кочегар

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



Ну не знаю, не знаю... Вообще-то эта опция и встравивает библиотеки в конечное приложение... Это легко понять даже исходя из того, что размер полученного файла без этой опции почти на 0.5Мб больше. И при все всё при этом скомпилированный с этой опцией ехешник на компах, гже нет Билдера не запускается и ругается на отсутствие хотя-бы той же vcl50, а без этой опци всё нормально запускается везде... Просто по каким-то причинам возникает эта ошибка только при использовании этих функций. Может потому что они описаны отдельно в teestore.h и не являются функциями-членами TChart...
AVC, в связи с твоим ответом, хотел бы у тебя и спросить, как корректно встротиь библиотеку в конечный файл и если поставлвять приложение вместе с бибюлиотекой, то как эту библиотеку потом зарегестрировать в систем и т.д.???
P.S. И ещё раз хотел бы отметить, что я полностью не согласен с тем, что чекер Build with runtime packages — вопрос политики распространения... (и вообще непонятно к чему это)
AVC
Отправлено: 29.06.2005, 15:20


Ветеран

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



QUOTE

как корректно встротиь библиотеку в конечный файл

Не указывать её в списке Runtime packages и, желательно, включить хотя бы один из её глобальных символов в глубоко лежащий пакет (при использовании пакетов).

QUOTE

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

Положить её (библиотеку) в каталог с приложением или %System%

QUOTE

P.S. И ещё раз хотел бы отметить, что я полностью не согласен с тем, что чекер Build with runtime packages — вопрос политики распространения... (и вообще непонятно к чему это)

Это ваши проблемы. Чекер и список определяют что включать в "комплект поставки".
Dimka
Отправлено: 29.06.2005, 15:57


Ученик-кочегар

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



Так вот как раз, когда я не включаю библиотеку TEEUI50 и TEE50 в этот список, то она и не компилится. Собственно по этому я и задал этот вопрос, имя в виду что таким образом Билдер не хочет встраивать её в результирующий файл. Поэтому этот вопос всё также отсаётся актуальным и ответа на него пока никто дать не может...
AVC
Отправлено: 29.06.2005, 17:10


Ветеран

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



Простите, что то меня глючит после праздников. smile.gif
К проекту нужно подключить lib файл.
Project — Add to project — $(BCB)\lib\teeui??.lib
или
#pragma link "teeui??.lib"
или
есть еще способ, сейчас не вспоминается.
Dimka
Отправлено: 29.06.2005, 23:14


Ученик-кочегар

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



[B] О! Вот это уже дельный совет... Thank you very much. Теперь всё работет.
P.S. Мы достигли консенсуса smile.gif
Rius
Отправлено: 07.07.2005, 20:06


Мастер участка

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



и есть еще один способ: перед установкой пятого полностью удалить все следы четвертого Chart'а, такое бывает из-за одинаковых по именам файлов от разных версий

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