正文

OCX控件调用dll中的对话框2011-03-30 18:14:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yuqiexing/52364.html

分享到:

     我们已经知道如何在程序中调用dll里面的资源:参考---

     http://blog.csdn.net/rivershan/archive/2004/03/08/15789.aspx

 

      尤其要注意:

为什么会出现上面的问题?这是因为在使用了MFC共享库的时候,默认情况下,MFC使用主应用程序的资源句柄来加载资源模板。虽然我们调用的是DLL中的函数来显示DLL中的对话框,并且对应的对话框模板是存储在DLL中的,但MFC仍旧在主应用程序也就是Use.exe中寻找相应的对话框模板。由于在DLL中所定义的对话框资源ID与主应用程序中所定义的关于对话框的资源ID相同,所以MFC就把主应用程序中的关于对话框显示了出来。如果二者不同,则MFC就认为DLL中所定义的对话框资源不存在,dlg.DoModal会返回0,也就是什么都不会显示。

 

但是怎么处理ocx控件对dll对话框的加载?还需要一些步骤:参考:

http://dev.firnow.com/course/4_webprogram/asp.net/asp_netshl/20071211/91494.html

 

需要加入:

AFX_MANAGE_STATE(AfxGetStaticModuleState());
     CoInitialize(NULL);
     AfxEnableControlContainer();

阅读(5039) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册