Здравствуйте Alex, Вы писали:
A>Добрый день. A>В который раз возник вопрос.
A>Я хочу сделать приложение (CBuilder) в котором каждый модуль (отдельная dll) хранила бы свой набор форм. Я создаю dll в которой есть форма и экспортируемая функция, в которой происходит динамическое создание формы. Из главной я получаю адрес этой ф-ции запускаю — все нормально. НО, я делаю главное приложение MDIForm, а в dll MDIChild, в качестве параметра передаю Application — результат программа вываливается с ошибкой, что невозможно создать Child форму так нет активной MDIForm. Вопрос, как быть и что делать.
Билдер использует Дельфийских VCL, а та в свою очередь создает отдельную копию переменной Application для каждого модуля (dll, exe). Отсюда и проблемы. Так что копай туда. В отладчике это видно...
A>Может у кого есть готовые решения этой проблемы. A>Подошло бы также решение, если бы форма была не MDI а просто на панели (TPanel) располагалась форма из dll.
Так создавай компоненты и брасай их на форму из центрального exe-шника.
A>Так же интересует как данное решение реализуется применительно к VisualC++.
Гы-гы. Так с объектной моделью туго. Для MFC одно, для API вообще говорить не о чем, для WTL другое. А грамотнее для таких целей и контейнер и формы описывать через COM-объекты. Это конечно сложнее чем на Билдере формы лабать, зато полный контроль и понимание.
В одном из номеров MSJ (теперь MSDN Mag) была статья о компонентном подходе для MFC (в VC 6).
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.