## MFC如何创建一个带界面的DLL(动态链接库)

1、创建项目

打开VS,文件->新建->项目:

点击确定之后弹出来的界面,点击下一步->选择“使用共享MFC DLL的规则”->完成

2、创建界面

视图->资源视图->右键‘添加资源’->添加Dialog资源

鼠标右键->添加类 即可。

3、打开界面

在主函数类的最前面加入类导出函数,如下:

#define DllExport   __declspec(dllexport)  //类导出函数
class DllExport CTestMFCDLLApp : public CWinApp
{
...
};

在主函数中引入刚刚加入的类,添加一个函数,用于打开这个界面。

bool CTestMFCDLLApp::InitThisLibrary(CWnd *Par)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState()); // 通知主程序切换资源,用DLL中的资源。 CTestNewDlg uiDlg; // 实例化界面
uiDlg.DoModal();
return true;
}

从AFX_MANAGE_STATE(AfxGetStaticModuleState())说起_optman的专栏-CSDN博客_afx_manage_state

上面的链接是解释切换资源的原因已经逻辑。

至此便做好了一个带界面的DLL,在需要使用的程序中使用即可。


抽刀断水水更流,举杯消愁愁更愁!

作者:Abraverman

时间:2021年9月6日11:39:33

MFC制作带界面的DLL库的更多相关文章

  1. 实现正在加载中界面的Android库:DynamicBox

    转载. DynamicBox是一个Android库,能够inflates自定义布局来指示出: 正在加载内容 显示一个异常 或者是一个自定义视图     项目主页:http://www.open-ope ...

  2. 用delphi制作无界面的activex控件

    首先,您要了解: •COM的基本原理 •能被网页调用的非可视ActiveX控件必须是一种至少实现了IOleObject接口的TAutoObject组件 •利用Delphi向导生成的ActiveX控件必 ...

  3. VC++ 带界面的ActiveX控件

    一.新建MFC ActiveX工程OleHasInterface: 二.新建一个对话框资源,ID为 IDD_FORMVIEW,关联类CActXInterfaceDlg,基类CDialog: 三.设计对 ...

  4. 编写带对话框界面的OCX

    编写带对话框界面的OCX步骤: 1.添加Dialog资源,切换到资源视图,将对话框的Style设置为Child,在对话框界面右击添加类,输入类名MyDlg,使得其继承与CDialogEx.(继承CDi ...

  5. MFC的使用——在共享DLL中使用MFC、在静态库中使用MFC(转)

    原文转自 https://blog.csdn.net/albertsh/article/details/52838419 1.使用标准Windows库 使用WINDOWS SDK API库,不使用MF ...

  6. Aspose Word.Dll库自带的bug导致The document appears to be corrupted and cannot be loaded 问题处理。

    问题的详细描述: C#在开发过程中使用Aspose.word.dll库去实现word套打功能.但是,最近客户反映出现了一个问题,在打印文档的时候,系统报错.经过定位分析发现是Aspose.word.d ...

  7. golang调用c++的dll库文件

    最近使用golang调用c++的dll库文件,简单了解了一下,特作此笔记:一.DLL 的编制与具体的编程语言及编译器无关 dll分com的dll和动态dll,Com组件dll:不管是何种语言写的都可以 ...

  8. Visual Studio 进行Excel相关开发,Microsoft.Office.Interop.Excel.dll库

    1. Interop.Excel.dll 的查找 本文中将 Microsoft.Office.Interop.Excel.dll库简称为Interop.Excel.dll库 其实在使用Visual S ...

  9. JNA 如何 加载多个 存在依赖的 DLL 库

    JNA 的出现,极大的简化了原有的 JNI 技术.下面是JNA github地址:https://github.com/java-native-access/jna 1. 简单的一个例子: /** S ...

  10. 如何自定义wordpress登录界面的Logo

    每次登录wp后台都会看到wordpress的logo,会不会有点烦呢?想不想换个新的.自己设定一个呢?那么如何自定义wordpress登录界面的Logo呢? 把代码复制到当前主题的 functions ...

随机推荐

  1. Unity UI优化

    UI优化 动静分离.拆分UI.预加载.字体拆分.滚屏优化.网格重构优化.展示关闭优化.对象池.贴图优化.图集拼接优化.UI业务逻辑中GC优化等. 一.动静分离 ** 问题:**unity中UGUI系统 ...

  2. Java开发者的神经网络进阶指南:深入探讨交叉熵损失函数

    前言 今天来讲一下损失函数--交叉熵函数,什么是损失函数呢?大体就是真实与预测之间的差异,这个交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异 ...

  3. Kubernetes(八)安全认证

    安全认证 本章主要介绍Kubernetes的安全认证机制. 1. 访问控制概述 Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务.所谓的安全性其实就是保证对Kube ...

  4. .Net Framework使用Autofac实现依赖注入

    .Net Framework使用Autofac实现依赖注入 前言 最近也是找了快2周的工作了,收到的面试邀请也就几个,然后有个面试题目是用asp.net mvc + Entityframework 做 ...

  5. GuavaCache、EVCache、Tair、Aerospike 缓存框架比较

    Guava Cache.EVCache.Tair.Aerospike 是不同类型的缓存解决方案,它们各有特点和应用场景.下面我会逐一分析这些缓存系统的优势.应用场景,并提供一些基本的代码示例. Gua ...

  6. yb课堂 基于浏览器和node.js的http客户端Axios 《三十四》

    什么是Axios 基于promise用于浏览器和node.js的http客户端 支持浏览器和node.js 支持Promise API 支持拦截请求和响应 支持转换请求和响应数据 JSON数据的自动转 ...

  7. VirtualBox Ubuntu 22.04 Server联网、与主机互联

    使用 VirtualBox 7.0安装了两个Ubuntu 22.04 Server虚拟机,想要实现: 主机与虚拟机互联 虚拟机之间互联,且互联的IP应为静态 虚拟机可以联网 解决方法 每个虚拟机配置两 ...

  8. Java Redis多限流

    Java Redis多限流 在Java中实现Redis多限流通常涉及使用Redis的某些特性,如INCR.EXPIRE.Lua脚本或者更高级的Redis数据结构如Redis Bitmaps.Redis ...

  9. redis雪崩

    每个key(即数据)如果设置了失效时间的话,如果大量key同时过期的时候,或者说因为某种原因redis中的数据突然大批量丢失,这些key又大量地去请求这些key时,因为redis里面没有这些数据,就会 ...

  10. [oeasy]python0045_转化为10进制数_int_integrate_integer_entire_整数

    转化为10进制 回忆上次内容 上这次总结了四种进制 函数名 对应单词 进制类型 数字事例 前缀 bin() binary 2 0b1100001 0b oct() octal 8 0o141 0o h ...