MFC编写界面dll,加载并显示dll中的UI

31 篇文章 2 订阅
1、创建一个“MFC dll”工程,确定。选择“使用共享MFC DLL的规则DLL”,点击“完成”。
2、再创建的dll工程中插入一个对话框Dialog资源。
3、在该对话框中添加一新类,如:UiDlg,基类为CDialog。
4、在dll工程的.cpp文件最顶部处添加 #include “UiDlg.h”,并添加一个接口函数:
extern "C" __declspec(dllexport) void ShowUIDlg()
{
       AFX_MANAGE_STATE(AfxGetStaticModuleState());
       UiDlg uiDlg; 
       uiDlg.DoModal(); 
}

编译该工程即可生成一个dll文件,如:xxxx.dll

5、新建一个对话框工程用作测试,把刚生成的xxxx.dll文件放到测试工程目录中。
 在初始化或按钮事件中添加加载dll的代码:
typedef void (WINAPI * TESTDLL)();
HINSTANCE hmod; hmod = ::LoadLibrary("xxxx.dll"); 
if (hmod == NULL)
{ 
	AfxMessageBox("Fail to Load xxxx.dll"); 
}
TESTDLL lpproc; 
lpproc = (TESTDLL)GetProcAddress(hmod, "ShowUIDlg");
if (lpproc != (TESTDLL)NULL)(*lpproc)(); 
FreeLibrary(hmod);

至此dll的创建和加载工作都已经完成。

编译运行就可以成功加载dll并显示出dll中的UI对话框。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: MFC(Microsoft Foundation Classes)是一种为Windows平台开发图形化应用程序的C++应用程序框架。它提供了一组类和函数来简化开发过程,使开发者能够快速创建具有图形界面的应用程序。 DLL(Dynamic Link Library)是一种在运行时可以被其他程序调用的可执行文件格式。MFC也支持创建带界面DLLMFC Extension DLL),可以将一些公共功能封装成DLL,并供其他应用程序共享和调用。 要在MFC界面DLL加入结构体,可以按照以下步骤进行: 1.打开MFC界面DLL项目,可以通过Visual Studio创建一个MFC DLL项目。 2.在资源视图,右键单击“资源”文件夹,选择“添加”->“添加资源”。 3.在“资源类型”选择“新建自定义资源”。 4.在“新建自定义资源”对话框,选择“STRUCT”,点击“导入”按钮,导入包含结构体定义的头文件。 5.在代码使用定义好的结构体,可以在DLL的头文件或者具体的源文件引入头文件,并按照需要使用结构体。 需要注意的是,如果要在DLL公开结构体给其他应用程序使用,可以使用`__declspec(dllexport)`修饰结构体定义,以便在DLL可以被其他应用程序调用。 总结起来,我们可以通过MFC界面DLL来封装公共的功能,并通过加入结构体来扩展其功能。在创建DLL的过程,我们需要导入结构体的头文件,并在代码使用定义好的结构体。为了让其他应用程序可以使用该结构体,我们可以使用`__declspec(dllexport)`修饰结构体定义。 ### 回答2: MFC(Microsoft Foundation Classes)是一组用于开发Windows应用程序的类库。它提供了许多可以用于创建用户界面、处理输入输出、管理资源等功能的类和函数。 带界面DLL(Dynamic Link Library)是一种动态链接库,它可以包含UI元素和功能,并可以被其他应用程序调用和使用。在MFC,可以创建带有界面DLL,使其具有用户界面和相应的功能。 结构体是一种自定义的数据类型,可以包含不同类型的数据。在MFC,可以创建和使用结构体来存储一些相关的数据,方便传递和使用。 在MFC,可以通过以下步骤将界面和结构体结合在一起: 1. 首先,创建一个MFC应用程序项目。 2. 在工程创建一个新的对话框资源,用于展示带有界面DLL的用户界面。 3. 在资源编辑器设计对话框界面,并添加所需的控件,例如按钮、文本框等。 4. 在代码定义一个结构体,用于存储和传递数据。可以在头文件定义结构体类型,并在需要使用它的地方包括头文件。 5. 在对话框类编写处理按钮点击等事件的代码,并调用带界面DLL的相应函数。可以使用结构体作为参数传递给DLL函数,并处理返回的数据。 6. 在带界面DLL项目,创建一个新的对话框类,用于处理UI相关的功能。 7. 在对话框类编写处理控件事件的代码,并处理传入的结构体数据。可以使用MFC提供的控件处理函数和消息映射机制来实现。 通过以上步骤,就可以在MFC使用带有界面DLL,并通过结构体来传递数据。这样可以实现复杂的功能和界面的模块化,提高代码的可维护性和可重用性。同时,结构体的使用还可以简化数据的传递和处理过程。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

随心漂流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值