在编写DLL时怎样动态添加用户自定义的控件?

super_speed 2005-07-12 02:53:05
自定义控件不能创建,由于是DLL所以开始没有创建自定义控件的宿主窗口,即

这段代码不能执行,m_sctrl.Create(NULL,WS_CHILD,rt,this,IDC_SCTRL);我如是又在DLL中加了一对话框窗口,在其上放了该自定义控件控件,



但这段代码又不能执行 if(m_dialog.Create(IDD_DIALOG1)!=0) 即又不能创建该对话框窗口,对话框窗口对象始终是空(m_dialog.m_hWnd ==null)




我在程序中即加了long hResult = ::CoInitialize(NULL); //COM初始化代码



也在函数的开始处加了AFX_MANAGE_STATE(AfxGetStaticModuleState());//针对基于MFC规则DLL动态库的模块状态自动切换。


不知是为什么,望高手指教,
...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodboyws 2005-07-12
  • 打赏
  • 举报
回复
调用DLL的EXE工程里,因为DLL的生存周期可能是不确定的。
super_speed 2005-07-12
  • 打赏
  • 举报
回复
Exe是指?
我不太明白,望详细指教


goodboyws 2005-07-12
  • 打赏
  • 举报
回复
最好放在Exe里
super_speed 2005-07-12
  • 打赏
  • 举报
回复
BOOL CTestApp::InitInstance()
{
// TODO: Add your specialized code here and/or call the base class
long hResult = ::CoInitialize(NULL);
if(FAILED(hResult)) {
AfxMessageBox("不能初始化COM库!");
return FALSE;
}
return CWinApp::InitInstance();


}
goodboyws 2005-07-12
  • 打赏
  • 举报
回复
::CoInitialize(NULL); 放在什么地方了?

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧