MFC 应用程序如何转为DLL 在VS2008下,实现了基于对话框的MFC应用程序,工作已经完成,其中涉及多个对话框,包含的控件众多,现在要求转为DLL,提供给客户使用,如何实现呢??在论坛里看到,有再生成一个DLL工程,然后将cpp和h添加进去,但是这种方法存在众多控件需要重新定义问题,这个工作量太大了,请教大侠们有没有好的方法来实现,或者是最好在原程序中修改设置或添加代码来实现呢?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道设置_USRDLL宏和修改配置属性为动态库DLL可不可以,可能不行。关键问题在于DLL不应该具备theApp,即应用程序实例。建议还是新建mfcdll工程。如果做成静态库的话,静态库注意要做成MD、MT两种版本或者包含每种的调试版本MDd、MTd 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也要配置。 可以写个Python或Perl脚本自动处理。 我被挖了,散分! 有没有高手?IOCP数据收发不正常,该怎么办? MFC 获取dataGrid当前行的值并显示在编辑框中 在对话框上画矩形,怎样让矩形透明???? 我在代码里加的printf,在VC里都打印在哪里了 socket中send和recv 为什么得不到窗口的标题了??? 对话框模式下的ODBC程序如何有此疑问? 为什么线程的执行时间差距那么大,高手快来 菜鸟求问一个数据调取的问题 我新手,在vc编了个最基本的窗口,为什么进程中运行了却弹不出窗口,求解答,谢谢。 vc mfc 如何获取当前程序的窗口并保存为图片
关键问题在于DLL不应该具备theApp,即应用程序实例。
建议还是新建mfcdll工程。
如果做成静态库的话,静态库注意要做成MD、MT两种版本或者包含每种的调试版本MDd、MTd
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也要配置。