在VS2008下,实现了基于对话框的MFC应用程序,工作已经完成,其中涉及多个对话框,包含的控件众多,现在要求转为DLL,提供给客户使用,如何实现呢??在论坛里看到,有再生成一个DLL工程,然后将cpp和h添加进去,但是这种方法存在众多控件需要重新定义问题,这个工作量太大了,请教大侠们有没有好的方法来实现,或者是最好在原程序中修改设置或添加代码来实现呢??

解决方案 »

  1.   

    不知道设置_USRDLL宏和修改配置属性为动态库DLL可不可以,可能不行。
    关键问题在于DLL不应该具备theApp,即应用程序实例。
    建议还是新建mfcdll工程。
    如果做成静态库的话,静态库注意要做成MD、MT两种版本或者包含每种的调试版本MDd、MTd
      

  2.   

    1 新建一个MFC DLL工程文件mydll,我选的是(带静态链接MFC的规则DLL);
    2 将原先程序myold中的.cpp和.h,以及资源文件统统移植过来,呼呼!!!
    3 在mydll.cpp中添加如下代码:
       声明方式如下:  extern "c" _declspec(dllexport) BOOL MyFun(CWnd *pParent,UINT nFuncType,UINT nFuncOption,long reserved );实现:
    BOOL MyFun(CWnd *pParent,UINT nFuncType,UINT nFuncOption,long reserved )
    {
     AFX_MANAGE_STATE(AfxGetStaticModuleState()); Dlgmyold dlg;
     dlg.SendMessage(WM_SYSCOMMAND,SC_RESTORE,0);
     dlg.Showwindow(SW_SHOW);}4.注意:在原程序中配置的一些.lib .h等,在dll也要配置。
      

  3.   

    可以写个Python或Perl脚本自动处理。