当前位置: 首页 > news >正文

基于MFC 的链接库

1. 动态库

MFC Regular dll:

① DLL内部有一个CWinApp类全局对象(像是基于mfc的exe程序那样存在一个theApp),该CWinApp类的Initstance负责执行dll内部初始化。

② DLL不能人为提供Dllmain函数,该函数由mfc库提供。

③在visual studio 的工程配置中,regular dll的预处理器中要添加_USRDLL,表示该库是一个规则dll。

④导出接口中必须标准C接口,不能有MFC相关的数据类型。且每个函数开头必须添加AFX_MANAGE_STATE(AfxGetStaticModuleState())语句,进行资源模块切换。
可以用.def文件定义导出符号,也可以用__declspec(dllexport)导出符号。

MFC Extension dll:

① DLL内部没有CWinApp类的全局对象,需要DLL导出自己的Dllmain接口,并在Dllmain中进行一些初始化配置工作。

②在visual studio 的工程配置中,Extension dll的预处理器中要添加_AFXEXT,表示该库是一个扩展dll。

③必须使用MFC提供的AFX_EXT_xxx宏去导出接口和类。

④扩展dll的客户端,必须是一个MFC程序。

2. 静态MFC链接库

只能是regular dll才允许被静态链接,特性和动态regular dll基本一致,但不需要在每个导出接口开头进行资源模块的切换。

相关文章:

  • vue项目打包部署到maven仓库
  • 如何针对游戏、金融行业定制CC攻击防护规则?
  • 如何配置环境变量HADOOP_HOMEM、AVEN_HOME?不配置会怎么样
  • RCEP框架下eBay日本站选品战略重构:五维解析关税红利机遇
  • java使用 ​Stream 流对自定义对象数组去重的
  • 欧拉服务器操作系统安装MySQL
  • Ollama、vLLM、LMDeploy选型指南
  • 什么是ETF跟踪误差?场内基金佣金最低是多少?
  • 批量将不同位置的多个文件复制到一个文件夹
  • Oracle查询大表的全部数据
  • JDBC 初认识、速了解
  • 谷云科技iPaaS集成平台4月发布新版本V7.4
  • 谷歌发布统一安全平台:让企业安全防护更简单
  • Spring如何解决项目中的循环依赖问题?
  • AI日报 - 2025年04月16日
  • 10 穴 汽车连接器的15个设计特点
  • 【AGI】MCP生态的“飞轮效应”
  • [随笔杂谈] 计算机编程 —— 通用学习等级体系
  • 数据库—函数笔记
  • 智慧声防:构筑海滨浴场安全屏障的应急广播系
  • 今年一季度上海离境退税商品销售额7.6亿元,同比增85%
  • 著名诗人、中国城市发展研究院原常务副院长吕贵品逝世
  • 主动权益基金一季度重仓股出炉:腾讯跃升至第一,阿里、比亚迪、中芯国际新进前十
  • 蚌埠一动物园用染色犬扮熊猫引争议,园方回应:被投诉已撤走
  • 研讨会|中国古代石刻与历史研究的多重图景
  • 威廉·透纳诞辰250周年|他是现代艺术之父