我通过新建Resource Script的方式在支持MFC的静态链接库中加入了资源,然后又添加对话框资源和对话框类CMyDialog。之后在静态库里创建如下函数:
void fun(CWnd *wnd)
{
CMyDialog *dlg = CMyDialog(wnd);
dlg->DoModal();
delete dlg;
}同时我新建一个MFC的EXE项目,在项目里调用
fun(this);
编译是通过了,但运行时却调不出CMyDialog对话框。不知为何,哪位高手可以指点?最好写明具体步骤。多谢多谢!
void fun(CWnd *wnd)
{
CMyDialog *dlg = CMyDialog(wnd);
dlg->DoModal();
delete dlg;
}同时我新建一个MFC的EXE项目,在项目里调用
fun(this);
编译是通过了,但运行时却调不出CMyDialog对话框。不知为何,哪位高手可以指点?最好写明具体步骤。多谢多谢!
http://www.vckbase.com/document/viewdoc/?id=543
当然以后如果需要将之变成动态库不会太复杂,但现在就是想用静态库。按照楼主所说,在内存中动态创建Dialog的模板来达到在静态链接库中创建对话框的要求的话,其实CDialog::DoModal()函数内部本身也是通过类似的方法实现的,既然这样找不到资源模板,那为什么在静态库的代码中显式调用就能实现了呢?
疑问?
AFX_MANAGE_STATE(AfxGetStaticModuleState());