MFC 将对话框封装成dll 并内嵌到主界面中

我将MFC中的对话框封装成dll 内嵌式被调用的对话框样式选择 child 生成后出错

第1个回答  2014-12-08
是不是没有使用 AFX_MANAGE_STATE(AfxGetStaticModuleState());
在任何导出函数中必须有这个宏。

例如
extern "C" BOOL PASCAL EXPORT ExportedFunction()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
// normal function body here
}追问

用过了 好像在消息循环那里出错了

追答

那需要看你的代码了。或者自己跟踪了。就你提交的问题来说,在这里真的没有办法帮你。

追问

恩 费了两天解决了 要动态加载 另外要加入窗口移动的消息响应

本回答被提问者和网友采纳
第2个回答  2014-12-07
什么错误?追问

比方说 在被调用的dialog上 画一个 button 显示 message 点击ok的时候 就会出错

如何把MFC界面封装为DLL供别人调用
1、先用mfc向导生成静态dll文件。2、编辑增加类;3、生成dll文件和lib文件;4、将生成的dll和lib,和类的头文件复制到需要引用的文*件exe下;\/ \/\/导出dll的头文件myClass.h define DLLimport __declspec(dllimport)define DLLexprot __declspec(dllexport)class DLLexprot myClass \/\/导出类 { pub...

mfc主程序怎么调用dll里面的对话框
1。把对话框类从dll中导出。2。从dll中导出函数,在该函数中显示对话框。因为对话框涉及资源句柄等模块状态的切换,所以一般采用第二种。第二种只需要在导出的函数中增加:AFX_MANAGE_STATE(AfxGetStaticModuleState()) ,而第一种需要将对话框类的每个用到资源的成员函数都加上这句话。

MFC DLL导出对话框问题
把AFX_MANAGE_STATE(AfxGetStaticModuleState());去掉试试,你用的是不是MFC扩展类型的DLL。

我想向你询问一下,如何把mfc的对话框程序变成DLL
方法一:将dll编译成静态链接到mfc方式的dll。 方法二:在对话框定义之前加上AFX_MANAGE_STATE(AfxGetStaticModuleState());

如何显示DLL中对话框资源 100Intellect
可是,如果在主程序中就这样子使用DLL对话框,那么,DLL对话框的回调函数就必须引出,这样主程序才能获得回调函数地址,就像这样: invoke GetProcAddress,DLL_HANDLE,DlgProcName invoke DialogBoxParam,DLL_HANDLE,DLG_NAME,hWnd,eax,NULL ;DlgProcName就是DLL中引出的回调函数 这段代码看起来...

MFC编程如何把dll封装入exe中
可以把dll以二进制形式写入到exe文件后面(exe允许后边添加任意长度数据 不影响程序的运行)长度为dll大小 在程序初始化的中读取自身文件后偏移dll大小的数据 然后创建这个dll 再loadlibrary 程序退出前deletefile把dll删除 如果不想被发现的话 还可以把dll的属性设置为隐藏或者直接将dll写入到windows目录下 ...

如何制作带MFC界面的DLL
ph->ShowWindow(SW_SHOW);return ph;} 6生成MyDLL.dll。MFC DLL程序创建完成。7新建MFC应用程序,名称为MyMFC,解决方案名称为MFCEXE。步骤阅读.8进入MFC应用程序向导,点击下一步,应用程序类型选择“基于对话框”,然后一直点击下一步,最后点击完成。步骤阅读.步骤阅读.步骤阅读.9在对话框中拖入...

mfc 程序已经做好 怎么把他封装成动态库
创建项目的时候选择"windows应用程序"生成后是.exe选择"类库"生成后是.dll,即动态链接库

MFC是什么
各子窗口都可以缩成图标或展开,MDI主窗口也可以变成桌面上的一个图标。MDI界面可能会给你一种第二桌面的感觉,它对窗口的管理和删除混乱的窗口有很大的帮助。 你所建立的每一个应用程序都会使用它自己的一套控件、菜单结构以及对话框。应用程序界面的好坏取决于你如何选择和组织这些界面对象。Visual C++ 中的资源...

VS2005中通过MFC生成的DLL文件,怎样在另外一个C++的Main函数中调用?
3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程)目录下;4.打开你的目标工程选中工程,选择Visual C++的Project主菜单的Settings菜单;5.执行第4步后,VC将会弹出一个对话框,在对话框的多页显示控件中选择Link页。然后在Object\/library modules输入框中输入:youApp.lib ...

相似回答