MFC动态链接库弹窗

2023-11-19

目录

一、创建主程序

二、添加MFC动态链接库

三、引用动态链接库

四、编译运行


一、创建主程序

 这里使用VS2019进行演示。

创建MFC应用,项目名称为MainProgram

 应用程序类型为“基于对话框”

 完成后删除原有控件,再添加一个按钮,双击添加一个响应函数

二、添加MFC动态链接库

右击解决方案,添加,新建项目,选择MFC动态链接库

 项目名称为DllDlg

 点击创建后,DLL类型为“使用共享 MFC DLL的常规 DLL”,然后点击确定

给DllDlg添加对话框

 右击窗体,添加类,输入类名称“DlgWithShow”,点击确定

 在DlgWithShow.h中添加两个头文件

#include "framework.h"
#include "afxdialogex.h"

 在DllDlg的头文件中添加头文件“DlgFun.h”

加入如下代码:

#pragma once

_declspec(dllexport) void ShowDlg();

鼠标选中方法,按Alt+Enter组合键,再回车,生成ShowDlg的定义

DlgFun.cpp代码如下

#include "pch.h"
#include "DlgFun.h"
#include "DlgWithShow.h"

void ShowDlg()
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	DlgWithShow dlg;
	dlg.DoModal();
}

AFX_MANAGE_STATE(AfxGetStaticModuleState());这一句很重要,作用就是在这个dll中找对应的资源,如果没加这个,就会在主程序中找这个对话框,找不到,就不会弹窗了。

三、引用动态链接库

右击主项目,属性,在C/C++ -> 常规的附加包含目录中添加..\DllDlg。用以引用DllDlg中的头文件

 在MainProgramDlg.cpp的文件中引用头文件

#include "DlgFun.h"

再添加如下代码

#pragma comment(lib, "..\\Debug\\DllDlg.lib")

_declspec(dllimport) void ShowDlg(); //这一行可以不加

对_declspec(dllexport)和_declspec(dllimport)不熟悉的可以参考这个

__declspec(dllexport) 和 __declspec(dllimport)的作用

在按钮的点击响应函数中添加弹窗

void CMainProgramDlg::OnBnClickedButton1()
{
	ShowDlg();
}

四、编译运行

选中解决方案,重新生成解决方案

运行后点击按钮,弹窗显示如下

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MFC动态链接库弹窗 的相关文章

  • .NET Windows 服务中调用 C# 的 wait 的 I/O 回调是否可以不阻塞?

    我知道在 ASP NET 中 当使用 wait 时工作线程会返回到池中 而 I O 发生在后台 这对于可扩展性非常有用 我的 Windows 服务是一个套接字服务器 它使用 Begin End 样式的异步套接字 I O 混合我的魔法 我知道
  • C/C++ 中随机数生成器的实现[重复]

    这个问题在这里已经有答案了 我对 C 中随机数生成器的实现有点困惑 它也与 C 中的明显不同 如果我理解正确 对 srand seed 的调用会以某种方式初始化可通过 rand 访问的隐藏变量 种子 该变量又将函数指向预先生成的序列 例如例
  • 如何将 C++ 类包装在基于 C 的 dll 或基于 CLI 的 dll 中?

    我被告知将我用 C 编写的类导入到 dll 中 然后在 c 应用程序中使用该 dll 下列的本指南 https stackoverflow com questions 4555961 how to use a class in dll我创建
  • C++ - 模板专业化和部分专业化

    我一直在互联网和 stackoverflow 上寻找具体的答案 但我似乎找不到 我必须创建一个通用类 然后实现特定的功能 我的具体说明是 您需要使用模板表达式参数以及模板类专业化和部分专业化 我有一个模板类 template
  • 实体框架7审计日志

    我正在将一个旧项目移植到 ASP NET 5 和 Entity Framework 7 我使用数据库优先方法 DNX 脚手架 来创建模型 旧项目基于Entity Framework 4 审计跟踪是通过重写实现的SaveChanges的方法D
  • CMake 警告:无法为目标生成安全的链接器搜索路径

    在为 pcl 项目运行 CMake 时 我收到一条警告消息 Configuring done CMake Warning at CMakeLists txt 12 add executable Cannot generate a safe
  • 使用正则表达式匹配以“Id”结尾的单词?

    如何组合一个正则表达式来匹配以 Id 结尾的单词并进行区分大小写的匹配 试试这个正则表达式 w Id b w 允许前面的单词字符Id和 b确保Id位于单词末尾 b是字边界断言
  • C++ 析构函数:何时释放内存?

    如果我删除一个导致其析构函数被调用的对象 那么内存是在析构函数完成函数中的任何操作之前还是之后被释放 仅当最小派生类子对象被销毁后才会释放内存 所以如果你有 class Base class Derived public Base publ
  • 从 ef core 的子集合中删除一些项目

    我有一个父表和子表 其中父表与子表具有一对多关系 我想删除一些子项 并且希望父项的子集合反映该更改 如果我使用删除选定的子项RemoveRange 那么子集合不会更新 如果我使用Remove从子集合中删除子集合然后 显然 它不如使用效率高R
  • 使用对象列表构建树

    我有一个带有属性 id 和parent id 的对象列表 我想建造一棵树来连接那些孩子和父母 1 个父对象可以有多个子对象 并且有一个对象将成为所有对象的祖先 实现该功能最快的算法是什么 我使用 C 作为编程语言 但其他语言也可以 像这样的
  • 在非指针变量和类成员上放置 new

    考虑以下示例 include
  • 为什么在 .net 中使用 Invoke on Controls? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 NET不允许跨线程操作 https stackoverflow com questions 2896504 why net does not allow cross thread operat
  • 如何使用 C# 代码使用超链接的 onClick 事件?

    我正在尝试为页面中的超链接添加条件 而不是仅仅使用特定的链接 例如 a href help Tutorial html Tutorial a 我想为不同的用户显示不同的页面 例如 如果用户以管理员身份登录 他们将看到与普通用户不同的链接 我
  • 函数模板重载解析期间的 MSVC 与 Clang/GCC 错误,其中一个函数模板包含参数包

    当我使用参数包时 我注意到这样一种情况 如下所示 在 gcc 和 clang 中编译得很好 但在 msvc 中却不行 template
  • 停止 TcpListener 的正确方法

    我目前正在使用 TcpListener 来处理传入连接 每个连接都有一个线程用于处理通信 然后关闭该单个连接 代码如下 TcpListener listener new TcpListener IPAddress Any Port Syst
  • 如何在Linux上构建GLFW3项目?

    我已经使用 cmake 和 make 编译了 glfw3 和包含的示例 没有出现任何问题 开始编写我的第一个项目 作为 opengl 和 glfw 的新手 并且对 C 和 CMake 没有经验 我正在努力理解示例构建文件 甚至要链接哪些库和
  • 编译器什么时候内联函数?

    在 C 中 函数仅在显式声明时才内联inline 或在头文件中定义 或者编译器是否允许内联函数 因为他们认为合适 The inline关键字实际上只是告诉链接器 或告诉编译器告诉链接器 同一函数的多个相同定义不是错误 如果您想在标头中定义函
  • 计算两个日期之间的工作日数?

    在C 中 如何计算business 或工作日 两个日期之间的天数 我以前曾经遇到过这样的任务 并且我已经找到了解决方案 当可以避免的时候 我会避免列举其间的所有日子 这里就是这种情况 正如我在上面的一个答案中看到的那样 我什至没有提到创建一
  • C# 中成员访问中的问号是什么意思?

    有人可以向我解释一下以下代码中会员访问中的问号是什么意思吗 它是标准 C 的一部分吗 尝试在 Xamarin Studio 中编译此文件时出现解析错误 this AnalyzerLoadFailed Invoke this new Anal
  • 如何获取通过网络驱动器访问的文件的 UNC 路径?

    我正在 VC 中开发一个应用程序 其中网络驱动器用于访问文件 驱动器由用户手动分配 然后在应用程序中选择驱动器 这会导致驱动器并不总是映射到相同的服务器 我该如何获取此类文件的 UNC 路径 这主要是为了识别目的 这是我用来将普通路径转换为

随机推荐

  • PHP实现发送邮件(附代码)

    发送邮寄功能的实现用到了PHP中的phpmailer函数包 它支持openssl和sockets 下载地址 下载后找到class phpmailer php class smtp php这两个文件 和你的代码放在一个目录 要实现发送邮件的功
  • mipi协议_MIPI系列之“MIPI CSI/DSI接口的FPGA实现”

    欢迎FPGA工程师加入官方微信技术群 点击蓝字关注我们FPGA之家 中国最好最大的FPGA纯工程师社群 本文主要介绍MIPI D PHY在FPGA上的实现 随着camera和显示技术的发展 MIPI接口在实际运用中越来越广泛 MIPI接口协
  • Solaris 10以太网卡设置

    前言 Solaris操作系统的以太网卡 以下简称网卡 设置 是一个老生常谈的话题 网上的相关资料也是汗牛充栋 数不胜数 但对刚刚接触Solaris的朋友来说 最需要的大概是一篇简明通俗 易读易用的操作指南 鉴于此 本文将网卡设置过程中涉及的
  • Robotframework 入门教程(二)

    变量 RF用 分别表示标量 列表 和字典 对应的就是python中的sre list和dict RF中Variables用来创建变量 修改我们的demo robot如下 对应于python的语法 var value list1 a b c
  • java集合List学习(结合源代码)

    一 首先 我们来一个简单的程序 import java util ArrayList import java util List public class Person public static void main String args
  • 含分布式电源的配电网日前两阶段优化调度模型(Matlab代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 文献来源 4 Matlab代码 数据 文章讲解 1 概述 文
  • 彻底解决Qt中文乱码以及汉字编码的问题(UTF-8/GBK)

    尊重作者 支持原创 如需转载 请附上原地址 https blog csdn net libaineu2004 article details 19245205 一 Qt Creator环境设置 1 cpp或h文件从window上传到Ubun
  • SDP文件的作用及其意义

    SDP是一个IETF标准格式 用来描述视频和 或者音频的RTP流 sdp文件时如何生成的 刚接触这一块 没有思路用记事本新建一个 txt文件 另存时把扩展名改为 sdp就生成了 具体内容可以参考rfc2327 以及具体编码格式对应的各个补充
  • reset_index()函数

    reset index 函数 作用 使用索引重置生成一个新的DataFrame或Series 可以把索引用作列 话不多说直接上代码 gt gt gt import pandas as pd gt gt gt import numpy as
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • GB28181设备接入端如何播放语音广播数据?

    技术背景 语音广播功能是GB28181设备接入端非常重要的功能属性 语音广播让终端和平台之间 有了实时双向互动 可以满足执法记录仪 智能安全帽 智能监控 智慧零售 智慧教育 远程办公 明厨亮灶 智慧交通 智慧工地 雪亮工程 平安乡村 生产运
  • JavaScript-如何获取字符串长度,如何获取字符串中指定索引的字符,如何从母串中提取子字符串,截取字符串的用法方法详解

    字符串概述 字符串是 JavaScript 的一种基本的数据类型 JavaScript 的字符串是不可变的 String 类定义的方法都不能改变原字符串的内容 var str hello world str abc 当重新给变量 str 赋
  • 神经影像研究驱动的脑龄估计作为脑疾病和健康状况识别的生物学标记

    大量神经影像数据的分析 使研究者对大脑区域的各种解剖分析变得越来越精细 并有助于检测不同的大脑状况和疾病 近年来 由神经影像驱动的脑龄估计被引入作为检测不同疾病和健康状况的有效生物标志物 但由于该类方法在近年来才涌现大量研究结果 还没有研究
  • layui与flask模板语言{{}}冲突的最佳方案

    使用 Jinja2的 raw 和 endraw 标签把 JavaScript 模板部分标记出来即可 raw endraw 但这是就需要注意区分项目中的 的值是jinja2还是layui
  • Blender基础操作:移动、旋转、缩放、删除、抓取、复制

    1 物体的移动 微调面板 Adjust last operation 对上一步操作进行微调 2 物体旋转与缩放 快速归位 几个快捷键 ALT G 坐标归零 ALT R 旋转归零 ALT S 缩放归零 3 删除 抓取 复制 快捷键x 确认后删
  • 论文阅读 - Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGP

    目录 摘要 1 INTRODUCTION 2 相关工作 2 1 Graph Neural Networks 2 2 Language Models 2 3 Prompt Tuning 3 符号 术语定义和问题表述 3 1 Basic Not
  • 关于table标签动态添加多个输入框input

    在做公司的一个项目的时候有个需求 要在表格中动态添加多个input 前台用的easyui 由于当时需求比较急 没做出来 就指定了三个 后面需要改成动态添加一行或多行输入 看过很多文章说用innerHtml或者append方法 试过之后确实可
  • Git 居然可以用来跟女神聊天?

    Git 是用来做啥的 想必码农朋友都知道 Git 是版本控制软件 是软件开发过程中团队协作不可或缺的软件 但是 作为版本控制软件的 Git 能跟聊天工具扯上关系吗 这二者似乎毫无关系 但脑洞大开的外国朋友 Ephi Gabay 就开发了一个
  • 重学 JavaScript 第四天

    for循环 好处 变量起始值 循环条件 变化值写到一起 for循环和while循环区别 当如果明确循环次数的时候推荐使用for循环 当不明确循环次数的时候推荐while循环 循环中断 continue 退出本次循环 继续下一次循环 brea
  • MFC动态链接库弹窗

    目录 一 创建主程序 二 添加MFC动态链接库 三 引用动态链接库 四 编译运行 一 创建主程序 这里使用VS2019进行演示 创建MFC应用 项目名称为MainProgram 应用程序类型为 基于对话框 完成后删除原有控件 再添加一个按钮