MFC 制作带界面的DLL以及完整调用

注意:x64 release编译的dll 只能被x64 releaseMFC调用。版本不对,调用也会失败。

 

 

1、第一步创建一“MFC AppWizard (dll)”工程,接下来选择“Regular Dll using shared MFC DLL”,点击“Finish”。

2、添加一对话框资源到工程中,从菜单中选择Insert->Resource,添加一“Dialog”  ,选择“New”,至此对话框已添加到DLL工程中。

3、为对话框添加一新类,如:CTest,基类为CDialog。

4、在MFCDLL.cpp中(因创建的工程为MFCDLL)添加接口函数:

extern "C" __declspec(dllexport) void Show(){  AFX_MANAGE_STATE(AfxGetStaticModuleState());  CTest test;  test.DoModal ();}

注意:别忘了在文件中添加: #include "Test.h":)

5、用VC新建一对话框工程,在一按钮点击事件中添加如下代码:

typedef void (WINAPI * TESTDLL)();HINSTANCE hmod;hmod = ::LoadLibrary ("mfcdll.dll");if(hmod==NULL){  AfxMessageBox("Fail");}TESTDLL lpproc;lpproc = (TESTDLL)GetProcAddress (hmod,"Show");if(lpproc!=(TESTDLL)NULL)  (*lpproc)();FreeLibrary(hmod);

6、完成

### 回答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,并通过结构体来传递数据。这样可以实现复杂的功能和界面的模块化,提高代码的可维护性和可重用性。同时,结构体的使用还可以简化数据的传递和处理过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值