Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2013, 17:31   #1
mikulka
 
Регистрация: 28.03.2012
Сообщений: 4
По умолчанию Работа с TChart pro 7.07 и динамическими длл-ками( BC6)

Есть проблема в динамической библиотеке (dll) я создаю формы, на формах располагаю tchart. Если я включаю в runtime packages TEE7C6, то в основном проекте при загрузки ДЛЛ
HINSTANCE hinst = LoadLibrary(str_name.c_str());
Вылетает ексептион invalid pointer operation.

Соответственно с tchart 4 все работало.

Пробовал на голой форме с tchartom все пашет, токо

еще есть глюк с codeguard( если включен и врублены runtime packages tchart'а) то вылетает ошибка обращения к нулевой памяти на голой форме с tchartoм.

Кто сталкивался с похожей проблемой пожалуйста отпишитесь..

ps:попробовал описать проблему (надеюсь понятно).
mikulka вне форума Ответить с цитированием
Старый 28.02.2013, 20:50   #2
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Непонятно. Если используются хоть какие-то packages, то надобность в ручной загрузке DLL отпадает. Но, в любом случае, неплохо было бы посмотреть, что такое str_name? Как описано и что содержит?
FataLL вне форума Ответить с цитированием
Старый 01.03.2013, 09:12   #3
mikulka
 
Регистрация: 28.03.2012
Сообщений: 4
По умолчанию

Опишу более подробно.

Группа проектов представляет из себя проект екзешника (форма MDI) и набор плагинов dll(форм mdi Child) . екзешник динамически загружает плагины, таким образом расширяя свой функционал.

Все необходимые packages я включаю в runtime packages.

Все работало отлично, но была необходимость перейти с TChart pro 4 до TChart pro 7.07.

В результате обнаружил 2 вещи.
1) если на пустой (новый проект с формой) добавить tchart и включить пакеты в режиме дебаг все работает хорошо, но стоит включить code guard -вылетает ошибка доступа к нулл памяти (не код гуард ругается а именно ошибка).

2) При работе с моей группой проектов мне необходимо добавить во все длл-ки с tchart-ом в рантайм packages необходимые пакеты для tchart..
Путем проб и ошибок я выяснил, что если в длл добавить необходимый пакет TEE7C6, то на этапе загрузки длл(что странно) (HINSTANCE hinst = LoadLibrary(str_name.c_str()) вываливается ексептион invalid pointer operation. Если убрать из длл-ки TEE7C6, то все грузится норм. Но этот пакет мне необходимо добавлять в runtime, иначе я не смогу юзать techart в других длл.

HINSTANCE hinst = LoadLibrary(str_name.c_str()); - строчка правильная, передается все нормально (относительный путь содержит) екзешник и длл лежат в одной папке. Все bpl-ки лt;fn в систем 32 (то есть вроде tchart вроде поставился нормально)

Последний раз редактировалось mikulka; 01.03.2013 в 09:18.
mikulka вне форума Ответить с цитированием
Старый 01.03.2013, 10:27   #4
mikulka
 
Регистрация: 28.03.2012
Сообщений: 4
По умолчанию

Прошу прощения, вопрос номер 2 решен. Глупость какая я в проекте длл забыл поставить use dinamic rtl (интересно что старый tchart работал и так).

Вопрос номер 1 остается открытым.. на форму пихаешь чарт + пакеты + codeguard-ошибка
mikulka вне форума Ответить с цитированием
Старый 01.03.2013, 10:29   #5
FataLL
Форумчанин
 
Аватар для FataLL
 
Регистрация: 29.01.2013
Сообщений: 319
По умолчанию

Настораживает то, что даже пустой проект не компилится... А старый даже в дебаге не работает? А в ридми к чарту ничего не написано? Он собирается из исходников, или готовые библы?
FataLL вне форума Ответить с цитированием
Старый 13.03.2013, 09:07   #6
mikulka
 
Регистрация: 28.03.2012
Сообщений: 4
По умолчанию

Прошу прощения за долгий ответ.
Использовал готовые, если есть ссылка на исходники, то прошу. ( что-то старого tchart 7 для ,builder 6 найти трудно).
Там есть файл с инструкцией. Сделал по инструкции, правда пришлось некоторые пути и константы путей задавать вручную (instal не все пути прописал).не заработало, тогда нашел на форуме что нужно удалить из system 32 bpl-ки связанные со старым tchar и соответственно из папки билдера. После этого все работает, но если добавлять в пакеты TEE7C6 и в настройках выставлять код гуард, то вылетает с ошибкой доступа к памяти по адресу ....05 (на пустом проекте соответственно)
mikulka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с динамическими списками SnegovikON Паскаль, Turbo Pascal, PascalABC.NET 1 20.12.2011 15:45
Работа с динамическими объектами medved6216 Общие вопросы Delphi 3 17.11.2011 19:08
Работа с динамическими переменными DonLena Фриланс 4 15.10.2008 18:13
Работа с динамическими переменными DonLena Паскаль, Turbo Pascal, PascalABC.NET 1 14.10.2008 20:05