vc++中把窗体封装到dll中并调用

vc++中把窗体封装到dll中并调用

ID:14172983

大小:40.00 KB

页数:13页

时间:2018-07-26

vc++中把窗体封装到dll中并调用_第1页
vc++中把窗体封装到dll中并调用_第2页
vc++中把窗体封装到dll中并调用_第3页
vc++中把窗体封装到dll中并调用_第4页
vc++中把窗体封装到dll中并调用_第5页
资源描述:

《vc++中把窗体封装到dll中并调用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VC++中把窗体封装到dll中并调用在DLL中使用资源现在最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32DLL和MFCDLL两个方面来分析并解决这个问题。1.Win32DLL在Win32DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者CreateDialog这两个函数(或相同作用的其它函数)来创建对话框,并定义你自己的对话框回调函数处理对话框收到的消息。下面通过一个

2、具体实例来学习如何在Win32DLL中使用对话框,可以按照以下步骤来完成这个例子:1)在VC菜单中File->New新建一个命名为UseDlg的Win32Dynamic-LinkLibrary工程,下一步选择AsimpleDLLproject。2)在VC菜单中Insert->Resource添加一个ID为IDD_DLG_SHOW的Dialog资源,将此Dialog上的Cancel按钮去掉,仅保留OK按钮。再添加一个ID为IDD_ABOUTBOX的对话框,其Caption为About。保存此资源,将资源文件命名为UseDlg.rc

3、。并将resource.h和UseDlg.rc加入到工程里面。3)在UseDlg.app中包含resource.h,并添加如下代码:HINSTANCEhinst=NULL;HWNDhwndDLG=NULL;BOOLCALLBACKDlgProc(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam);BOOLCALLBACKAboutProc(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam);extern"C"__declspec(dllexp

4、ort)voidShowDlg();BOOLAPIENTRYDllMain(HANDLEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){switch(ul_reason_for_call){caseDLL_PROCESS_ATTACH:hinst=(HINSTANCE)hModule;caseDLL_PROCESS_DETACH:break;}returnTRUE;}extern"C"__declspec(dllexport)voidShowDlg(){hwndDLG=Crea

5、teDialog(hinst,MAKEINTRESOURCE(IDD_DLG_SHOW),NULL,(DLGPROC)DlgProc);ShowWindow(hwndDLG,SW_SHOW);}BOOLCALLBACKDlgProc(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam){switch(message){caseWM_INITDIALOG:returnTRUE;caseWM_COMMAND:if(LOWORD(wParam)==IDOK)DialogBox(hinst,MA

6、KEINTRESOURCE(IDD_ABOUTBOX),hDlg,(DLGPROC)AboutProc);returnTRUE;caseWM_CLOSE:DestroyWindow(hDlg);hwndDLG=NULL;returnTRUE;}returnFALSE;}BOOLCALLBACKAboutProc(HWNDhDlg,UINTmessage,WPARAMwParam,LPARAMlParam){switch(message){caseWM_CLOSE:EndDialog(hDlg,NULL);hwndDLG=NULL

7、;returnTRUE;}returnFALSE;}4)编译生成UseDlg.dll和UseDlg.lib。接下来我们建立调用此DLL的应用程序,其步骤如下:1)在VC菜单中File->New新建一个命名为Use的MFCAppWizard(exe)工程,下一步选择DialogBased之后点击Finish按钮。2)在主对话框上面添加一个按钮,www.qqme5.com,之后双击此按钮,会弹出AddMemberFunction的对话框,直接点击OK进入voidCUseDlg::OnButton1()函数。并在此函数内添加一个函数调

8、用:ShowDlg();。3)紧跟在#include语句后面加上如下代码:extern"C"__declspec(dllexport)voidShowDlg();#pragmacomment(lib,"debug/UseDlg")4)将上面UseDlg工程中生成

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。