Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как правильно скомпилить проект вместе с dll

11
24 октября 2007 года
oxotnik333
2.9K / / 03.08.2007
ситуация такая:
есть ProjectGroup (exe-шник + dll)
если в опциях проекта стоит: use dynamyc RTL, build with runtime paсаges (VCL'ы) + Full Debug тогда все работает
если я снимаю все эти опции (т.е. делаю релиз) при вызове dll возникает "Exeption EInvalidCast in module....dll..."
какие опции проекта отвечают за корректную линковку и сборку релиза проекта?
1
24 октября 2007 года
kot_
7.3K / / 20.01.2000
Цитата: oxotnik333
ситуация такая:
есть ProjectGroup (exe-шник + dll)
если в опциях проекта стоит: use dynamyc RTL, build with runtime paсаges (VCL'ы) + Full Debug тогда все работает
если я снимаю все эти опции (т.е. делаю релиз) при вызове dll возникает "Exeption EInvalidCast in module....dll..."
какие опции проекта отвечают за корректную линковку и сборку релиза проекта?



"use dynamyc RTL, build with runtime paсаges " - никакого отношения не имеют к типу сборки проекта (релиз или дебаг). Эти опции - в частности use dynamyc RTL - как правило не стоит отключать без необходимости, так как далеко не все компоненты при этом корректно работают. Кроме того проверьте что оба проекта компилируются с одинаковыми параметрами.

11
25 октября 2007 года
oxotnik333
2.9K / / 03.08.2007
Цитата:
use dynamyc RTL - как правило не стоит отключать без необходимости


не хочу за собой такскать borlndmm.dll

все опции обоих проектов абсолютно идентичны

1
25 октября 2007 года
kot_
7.3K / / 20.01.2000
Цитата: oxotnik333
не хочу за собой такскать borlndmm.dll

все опции обоих проектов абсолютно идентичны


Ну для начала - эта опция (use dynamyc RTL) отвечает за линковку СС3260.DLL или CC3260MT.DLL - в зависимости используется ли мультипоточность или нет. borlndmm.dll - это общий менеджер памяти - кроме того ты в любом случае будешь его таскать за собой - так что сделай нормальную инсталяшку и не мучайся.
Во вторых - вероятнее всего проблема всетаки не в опциях линковки.

11
25 октября 2007 года
oxotnik333
2.9K / / 03.08.2007
use dynamyc RTL что отключено, что включено, разницы нет.. та же ошибка...
проверил и сравнил все опции обоих проектов, все идентично
1
25 октября 2007 года
kot_
7.3K / / 20.01.2000
Цитата: oxotnik333
use dynamyc RTL что отключено, что включено, разницы нет.. та же ошибка...
проверил и сравнил все опции обоих проектов, все идентично


Какие компоненты используются в длл? При создании длл задавалась поддержка VCL? Многопоточность? Создай в длл специальную функцию для отладки и организуй вывод сообщений - что бы понять что именно вызывает ошибку.

11
26 октября 2007 года
oxotnik333
2.9K / / 03.08.2007
методом половинного деления кода в dll выяснил что в строке:
ADOStoredProc1->Parameters->CreateParameter("@ItemLevel", ftInteger, pdInput, 4, 0); ненравится приведение типов (при релизе библиотеки)
при дебаге все нравится
1
26 октября 2007 года
kot_
7.3K / / 20.01.2000
Цитата: oxotnik333
методом половинного деления кода в dll выяснил что в строке:
ADOStoredProc1->Parameters->CreateParameter("@ItemLevel", ftInteger, pdInput, 4, 0); ненравится приведение типов (при релизе библиотеки)
при дебаге все нравится


попробуйте оставить галку "use debug lib" и проверить результат.

11
26 октября 2007 года
oxotnik333
2.9K / / 03.08.2007
как оказалось, теряется указатель на Collection в TParametrs(Collection)
пришлось создать отдельную TADOStoredProc и с ней работать
т.е.
auto_ptr<TADOStoredProc>ADOStoredProc1 (new TADOStoredProc(NULL));
...
дале по тексту... в принципе она изначально была не нужна как параметр ф-ии, тут я стормозил

ПЫСЫ: к стати, в моем случае опции компиляции проектов друг от друга не зависят...
как будет дальше посмотрим
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог