我们已经知道如何在程序中调用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();
评论