MFC exe项目封装成DLL

一言以蔽之:给原项目包层接口。

具体实现:

  1. 新建一个MFC的DLL项目(MyDll);
  2. 删除MyDll项目的.rc文件;
  3. 将正常运行的exe项目(MyExe)的所有文件包括.h,.cpp,.rc和资源文件等复制到MyDll项目,MyExe.rc文件重命名为MyDll.rc
  4. 删除原实例化WinApp的.cpp类及其头文件,(一般名称为MyExe.cpp和MyExe.h);将所有对它的引用改成MyDll.h;(不做这一步会产生datacore.cpp line:380的错误);
  5. 在MyDll.cpp添加代码:
  6. extern "C" __declspec(dllexport) void ShowDlg(void)  
    //void ShowDlg(void)
    {  
    
    AFX_MANAGE_STATE(AfxGetStaticModuleState());//为了保证代码准确防止调用失败
    CFileBrowserDlg dlg;  
    dlg.DoModal();  
    
    }

  7. 选择生成方式,dllexport或者def(需要去掉extern “c” _decispecl(dllexport))编译即可生成MyDll.lib和MyDll.dll文件;
  8. 在其他项目需要的地方引用这两个文件即可。
上一篇:2.rcParams画图参数详解(转)


下一篇:Duilib的双缓冲实现,附带GDI、WTL的双缓冲实现