Диалоги в DLL.
От: Вовка Рыбаков  
Дата: 28.05.03 06:56
Оценка:
Всем привет!

Собственно, вопрос дурацкий:
Есть DLL, которая содержит диалог и экспортируемую функцию для его поднятия. DLL подгружается другим приложением и поднимает диалог вызовом экспортируемой функции. Всё работало, до тех пор, пока я не положил на диалог MSFlexGrid. После добавления его на диалог — он перестал создаваться

Да, диалог построен так: к ресурсу прицеплен класс, наследник CDialog (в общем-то, всё традиционно).

Экспортируемая функция поднимает его:


void _stdcall ShowDlg() { // экспортируемая функция
  CTestDlg dlg; // class CTestDlg : public CDialog....
  dlg.DoModal();
}



В обычном MFC приложении, подобные глюки лечились установкой галки около Active X (при создании проекта). В DLL подобной галки нет

С уважением,
Володя.

P.S.: Или с подобными вопросами надо в COM/ ActiveX?
P.P.S.: Порекомендуйте грид попродвинутей, чем MSFlexGrid, плиз... Желательно бесплатный!
Re: Диалоги в DLL.
От: Vitaton Россия  
Дата: 28.05.03 07:07
Оценка:
Здравствуйте, Вовка Рыбаков, Вы писали:

ВР>Всем привет!


ВР>P.P.S.: Порекомендуйте грид попродвинутей, чем MSFlexGrid, плиз... Желательно бесплатный!


Рекомендую Стингрей, но он зараза типа платный.
Useless lamer
Re: Диалоги в DLL.
От: Vicont Россия  
Дата: 28.05.03 07:53
Оценка:
Здравствуйте, Вовка Рыбаков, Вы писали:

ВР>Всем привет!


ВР>Собственно, вопрос дурацкий:

ВР>Есть DLL, которая содержит диалог и экспортируемую функцию для его поднятия. DLL подгружается другим приложением и поднимает диалог вызовом экспортируемой функции. Всё работало, до тех пор, пока я не положил на диалог MSFlexGrid. После добавления его на диалог — он перестал создаваться

ВР>Да, диалог построен так: к ресурсу прицеплен класс, наследник CDialog (в общем-то, всё традиционно).


ВР>Экспортируемая функция поднимает его:



ВР>
ВР>void _stdcall ShowDlg() { // экспортируемая функция
ВР>  CTestDlg dlg; // class CTestDlg : public CDialog....
ВР>  dlg.DoModal();
ВР>}
ВР>



ВР>В обычном MFC приложении, подобные глюки лечились установкой галки около Active X (при создании проекта). В DLL подобной галки нет


ВР> С уважением,

ВР> Володя.

ВР>P.S.: Или с подобными вопросами надо в COM/ ActiveX?

ВР>P.P.S.: Порекомендуйте грид попродвинутей, чем MSFlexGrid, плиз... Желательно бесплатный!

А ты ресурсы менял?
AfxGetResourceHandle(old);
AfxSetResourceHandle(new);
...//вызов твоего диалога
AfxSetResourceHandle(old);
Re: Диалоги в DLL.
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 28.05.03 08:37
Оценка:
Здравствуйте, Вовка Рыбаков, Вы писали:

ВР>P.P.S.: Порекомендуйте грид попродвинутей, чем MSFlexGrid, плиз... Желательно бесплатный!


здесь
- Искренне ваш, Поросенок Пафнутий
Re: Диалоги в DLL.
От: algol Россия about:blank
Дата: 28.05.03 09:43
Оценка:
Здравствуйте, Вовка Рыбаков, Вы писали:

ВР>В обычном MFC приложении, подобные глюки лечились установкой галки около Active X (при создании проекта). В DLL подобной галки нет


Попробуй в InitInstance добавить AfxEnableControlContainer. Можно еще посмотреть AfxOleInit и Q154320.
Re: Диалоги в DLL.
От: Аноним  
Дата: 28.05.03 11:58
Оценка:
Здравствуйте, Вовка Рыбаков, Вы писали:

Привет!

Я делал так.

void _stdcall ShowDlg()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState( )) //ТОЧКУ С ЗАПЯТОЙ НЕ НАДО
CTestDlg dlg; // class CTestDlg : public CDialog....
dlg.DoModal();
}

С уважением
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.