我通过新建Resource Script的方式在支持MFC的静态链接库中加入了资源,然后又添加对话框资源和对话框类CMyDialog。之后在静态库里创建如下函数:
void fun(CWnd *wnd)
{
CMyDialog *dlg = CMyDialog(wnd);
dlg->DoModal();
delete dlg;
}同时我新建一个MFC的EXE项目,在项目里调用
fun(this);
编译是通过了,但运行时却调不出CMyDialog对话框。不知为何,哪位高手可以指点?最好写明具体步骤。多谢多谢!主要是现在有个程序,需要在静态库中动态创建各种对话框,对于静态库的使用者不需要知道具体是创建了什么,这由静态库来管理,这样有利于程序的模块化,所以有关对话框的信息及资源需要在静态库里管理。
当然以后如果需要将之变成动态库不会太复杂,但现在就是想用静态库。其实也就是在静态库的调用者(即主程序)中使用静态库中的资源ID,假如在静态库中创建一个资源ID:110,在静态库中调用110时,在运行时却发现是在主程序的资源列表中去找110,如果找到了,则成功,找不到则失败。真不明白为什么静态库中的资源无法链入主程序呢?