atl使用mfc扩展dll 在atl使用mfc扩张dll,对话框无法显示啊。急啊,大侠救命啊。在线等! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 因为MFC扩展DLL需要一个CWinApp对象而你的atl工程选择了支持mfc没有? 选择了支持mfc没有? 选了。CWinApp对象有没有? 有========================================= 笑死我了,不过关注一下。你的扩展DLL一般是导出资源或类什么的。导出一个类的话,应该用一个超类(全用虚函数,类似于接口)来实现。 关键是你得资源入口没有设置到DLL里边,这个和是什么DLL没有关系,MFC有个宏 AFX_MANAGE_STATE(AfxGetStaticModuleState( ));要不你就用API好象是什么SetResourc...什么都,参数需要你得DLL句柄。 你的扩展DLL一般是导出资源或类什么的。导出一个类的话,应该用一个超类(全用虚函数,类似于接口)来实现。================你怎么知道没有导出全局函数什么的直接使用的东西?难道非要导出class么?谁规定的? 直接在资源中NEW一个Dialog,然后给它创建一个DLG类,在你的借口函数里引进这个类就OK啦!声明一个对话框的类,DoModal()就可以显示啦,我最近也刚做完这方面的一个控件,需要的话我可以发给你我做的参考一下,不过要给我点分哦! 是声明这个对话框类一个对象在DoModal() 关键是你得资源入口没有设置到DLL里边,这个和是什么DLL没有关系,MFC有个宏 AFX_MANAGE_STATE(AfxGetStaticModuleState( ));要不你就用API好象是什么SetResourc...什么都,参数需要你得DLL句柄。没有设置资源载入的入口点,你的对话框模版就找不到,当然你的对话框就显示不出来了。 楼上的回答里面,提到“AFX_MANAGE_STATE(AfxGetStaticModuleState( ))”的,是80%正解。楼主应该采纳。在你的ATL程序里,准备“Create”或者“DoModal”的前面先加上这句!而剩下的20%是这样,MFC扩展DLL的向导生成代码的注释里明确说了,当MFC扩展DLL的调用者不是MFC EXE,而是MFC DLL时(你的支持MFC的ATL组件相当于MFC DLL),必须将“new CDynLinkLibrary(newlistviewDLL);”这句从DllMain里拿掉。然后单独做一个引出函数如:void AFX_EXT_API InitMyListViewModule(){ new CDynLinkLibrary(newlistviewDLL);}然后在你的MFC DLL的CWinApp::InitInstance里手动调用这个函数。至此,MFC扩展DLL的链式资源才算是彻底初始化完毕。你的对话框若是再弹不出来,就请你检讨一下最近有没有做什么亏心事了…… vc++集成环境中怎么找一个基础类中函数的具体定义(不是简单的声明) 如何在dialog中显示一个jpg图象? 如有关于window下和direct如何结合到一起呢? 应该怎么解决? 怎样在EDIT控件输入字符时用图片代替? 小问题 答上既给分 有点痛苦!为什么我调用不了COM组件? 如何实现点击不同按钮调用同一函数? vc怎么进行多线程编程?? we为什么会出错" left operand must be l-value" 读入模型如何与地形匹配。。。。求救啊。。。。。 初学者问题
而你的atl工程选择了支持mfc没有?
笑死我了,不过关注一下。
你的扩展DLL一般是导出资源或类什么的。导出一个类的话,应该用一个超类(全用虚函数,类似于接口)来实现。
================
你怎么知道没有导出全局函数什么的直接使用的东西?
难道非要导出class么?谁规定的?
{
new CDynLinkLibrary(newlistviewDLL);
}然后在你的MFC DLL的CWinApp::InitInstance里手动调用这个函数。至此,MFC扩展DLL的链式资源才算是彻底初始化完毕。你的对话框若是再弹不出来,就请你检讨一下最近有没有做什么亏心事了……