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

 
dll, ошибка вызова
Simai
Отправлено: 10.03.2006, 13:43


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

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



создаю dll (тут создаю DataModule и формочки).
в приложении подключаю эту dll и вызываю форму(описанную в dll ).
Все работает.
НО. елси я откомпелирую dll — откючая USE Dynamic RTL и Build witch runtime package то приложение начинает рураться
"Exception EClassNotFound in module ....."
Подскажите, плиз что не так
Замечание: в dll создаю DataModule . пока он пустой — все ОК, но как только положить компоненты FibPlus возникае ошибка эта ошибка

Отредактировано Simai — 10/03/2006, 13:51
olegenty
Отправлено: 10.03.2006, 16:19


Ветеран

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



лучше всего восприми как аксиому, что при использовании VCL в DLL нужно создавать DLL и EXE с опциями
Build With Runtime Packages, причем не должно быть так, что какой-то пакет c DLL скомпилирован статически, а с EXE — динамически и наоборот. Ну и Use dynamic RTL должно быть активно.

если интересует, почему так — на xportal всё очень приподробно описано.
spiller
Отправлено: 11.03.2006, 21:34


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

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



QUOTE (olegenty @ 10/03/2006, 16:19)
лучше всего восприми как аксиому, что при использовании VCL в DLL нужно создавать DLL и EXE с опциями
Build With Runtime Packages, причем не должно быть так, что какой-то пакет c DLL скомпилирован статически, а с EXE — динамически и наоборот. Ну и Use dynamic RTL должно быть активно.

если интересует, почему так — на xportal всё очень приподробно описано.

Объясните пож-та чем отличается динамическая компиляция от статической? Может кинете пару нормальных ссылок где про это грамотно написано?
Спасибо!
olegenty
Отправлено: 13.03.2006, 07:18


Ветеран

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



Основой такого положения вещей является то, что в VCL есть ряд глобальных экземпляров классов, таких как Application класса TApplication. При статической линковке у EXE и у DLL получается две автономных копии этих глобальных объектов, а при динамической — всё путём, один, как и должно быть. Более подробно всё же на xportal.

Вернуться в Работа с базами данных в C++Builder