我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C语言MFC怎么导出dll回调函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C语言MFC怎么导出dll回调函数

本文小编为大家详细介绍“C语言MFC怎么导出dll回调函数”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言MFC怎么导出dll回调函数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    如何将回调函数导出来

    举一个简单的例子,sleep一定时间后通知应用程序函数。

    操作流程,如下所示:

    C语言MFC怎么导出dll回调函数

    在实际开发中肯定不会在dll中将sleep作为回调函数处理,那真是吃饱了撑了,这里,只是用于简单例子说明,重点是想突出,如何让dll主动调用应用程序。

    dll内部回调函数功能讲解

    1:定义开始定时操作函数

    该函数由调用dll的程序主动调用,告诉dll需要开始进行定时操作了。

    对于这个函数,没什么过多说明,上一章节讲述了如何使用回调函数了,直接上代码:

    .h中声明

    //开始计算定时触发_InterrExport void BeginTimerStart(int nTime);//开始计算定时触发时间

    .cpp中实现

    _InterrExport void BeginTimerStart(int nTime){Sleep(nTime);pFuncTimerDescrip("接收到了定时器触发结束消息~");}

    首先,根据参数进行sleep对应的秒数,时间到达后,由dll主动回调开发程序,其中pFuncTimerDescrip函数就是主动触发的。

    对于pFuncTimerDescrip函数该如何操作呢?

    2:回调函数

    普通的回调方式不在过多说明,直接讲解在dll中的回调使用。

    在例子中,回调函数是一个类似于TimerTriggerDescrip(std::string sDescrip);这样的函数结构。

    参数只有一个,并且是字符串类型。

    2.1:定义回调函数接口

    普通的dll导出函数中,参数是一个明确类型的值,比如:int类型、float类型、甚至是一个结构体。

    而作为回调函数来说,必不可少的就是注册回调函数,dll中的回调函数也是如此。

    首先,定义回调函数

    typedef void (*TimerTriggerDescrip)(std::string sDescrip); //回调函数,定时触发

    其次,注册回调函数

    _InterrExport void CallBackFunc_GetTimerTriggerDescrip(TimerTriggerDescrip callback);

    对外部调用者来说,开放的仅仅是注册回调函数而已。

    以上2.1中的所有代码,都在.h中声明。

    2.2:dll中使用回调函数触发消息

    这里所说的触发,也就是上述代码:

    pFuncTimerDescrip("接收到了定时器触发结束消息~");

    其中,pFuncTimerDescrip就是回调函数的指针。

    在.cpp应用中设置

    TimerTriggerDescrip pFuncTimerDescrip= nullptr;

    到这里,在dll中设置回调函数就完成了,那么接下来,该实现如何在应用程序中调用dll中的回调函数了。

    应用程序调用dll回调函数

    1:加载dll库

    在使用之前一定要记得加载dll,上一章节有详细介绍,这里就不说明了。

    2:声明回调函数

    在调用dll的地方需要将回掉函数的函数进行声明,与普通的dll导出函数方式一致,代码如下:

    typedef void(*TimerTriggerDescrip)(std::string sDescrip);typedef void (*CallBackFunc_GetTimerTriggerDescrip)(TimerTriggerDescrip);CallBackFunc_GetTimerTriggerDescrip pCallFuncTimerDescrip;

    TimerTriggerDescrip:该函数是dll库中,内部触发应用程序的函数,这里作为回调函数的参数也是需要声明的。

    3:注册回调函数

    在注册时,与普通的dll函数略有不同

    //注册:回调函数pCallFuncTimerDescrip = (CallBackFunc_GetTimerTriggerDescrip)GetProcAddress(handle, "CallBackFunc_GetTimerTriggerDescrip");pCallFuncTimerDescrip(CallBack_ReceiveTimerDescrip);

    CallBack_ReceiveTimerDescrip:该函数就是对应dll库中TimerTriggerDescrip函数。

    //接收:dll回调函数void CallBack_ReceiveTimerDescrip(std::string sDescrip){OutputDebugStringA(sDescrip.c_str());}

    参数与dll中的回调函数保持一致,就可以接收到回调的信息了。

    读到这里,这篇“C语言MFC怎么导出dll回调函数”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    C语言MFC怎么导出dll回调函数

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    C语言MFC怎么导出dll回调函数

    本文小编为大家详细介绍“C语言MFC怎么导出dll回调函数”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言MFC怎么导出dll回调函数”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。如何将回调函数导出来举一个
    2023-07-04

    C语言的回调函数怎么使用

    本篇内容主要讲解“C语言的回调函数怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言的回调函数怎么使用”吧!对指针的应用是C语言编程的精髓所在,而回调函数就是C语言里面对函数指针的高级
    2023-06-17

    c语言callback回调函数怎么使用

    在C语言中,回调函数(callback)是一种函数指针,可以作为参数传递给其他函数,这样在调用该函数时,可以执行传递的回调函数。下面是一个简单的示例,展示了如何使用回调函数:首先,定义一个回调函数的原型。这个原型应该与你想要传递的回调函数的
    2023-10-18

    C 语言回调函数详解

    回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。1. 什么是回调函数?
    2023-06-03

    c语言函数怎么调用

    在 c 语言中调用函数的步骤:声明函数:说明函数名称、返回值类型和参数列表。定义函数:提供函数的实现。调用函数:使用函数名及其参数。如何调用 C 语言函数在 C 语言中,调用函数需要遵循以下步骤:1. 函数声明首先,需要在函数之前声明
    c语言函数怎么调用
    2024-05-15

    c语言socket函数怎么调用

    在C语言中,我们可以使用头文件和来调用socket函数。首先需要创建一个socket,使用socket函数来创建一个套接字。函数原型如下:```cint socket(int domain, int type, int protocol);
    2023-10-12

    c语言getenv函数怎么调用

    要使用getenv函数,需要包含头文件stdlib.h。调用getenv函数的语法如下:#include char* getenv(const char* name);其中,参数name是要获取环境变量的名称,返回值是
    c语言getenv函数怎么调用
    2024-02-29

    c语言调用函数怎么写

    在 c 语言中,要调用函数,遵循以下步骤:声明函数:使用语法 "return_type function_name(parameters);"。定义函数:使用语法 "return_type function_name(parameters)
    c语言调用函数怎么写
    2024-05-15

    c语言log函数怎么调用

    要在 c 语言中使用 log 函数计算以 10 为底的对数,需要:包含 头文件。调用 log(x) 函数,其中 x 是要计算其对数的正浮点数。函数返回 x 的对数,可以进一步计算或存储。C 语言中 log 函数的调用log 函数用于计算
    c语言log函数怎么调用
    2024-05-21

    c语言fact函数怎么调用

    在C语言中,可以通过以下方式调用fact函数:1. 在另一个函数中调用fact函数:```c#include // 声明fact函数int fact(int n);int main() {int num = 5;int result = f
    2023-08-08

    c语言函数system怎么调用

    在C语言中,可以使用`system()`函数来调用系统命令。`system()`函数的原型如下:```cint system(const char *command);```参数`command`是要执行的命令字符串。`system()`函
    2023-10-11

    c语言wait函数怎么调用

    在C语言中,可以使用wait()函数来等待子进程的结束。以下是wait()函数的调用方法:c#include #include #include int main() {
    2023-10-23

    c语言ln函数怎么调用

    ln 函数在 c 语言中用于创建硬链接,使新文件 filename 指向现有文件 oldname:包含头文件 声明 oldname 和 filename 字符串指针变量分配内存并存储要链接和创建的文件的路径和文件名调用 ln() 函数创建指
    c语言ln函数怎么调用
    2024-05-15

    c语言sin函数怎么调用

    使用 c 语言的 sin 函数计算正弦值需要遵循以下步骤:包含头文件 。函数参数为双精度浮点数,表示要计算正弦值的弧度值。函数调用语法为:double sin(double x)。例子:#include double sine = si
    c语言sin函数怎么调用
    2024-05-15

    C语言的回调函数如何使用

    这篇“C语言的回调函数如何使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言的回调函数如何使用”文章吧。1.程序架构一
    2023-06-29

    c语言中fun函数怎么调用

    调用 c 语言中的 fun 函数涉及以下步骤:声明 fun 函数:告知编译器函数名称、参数和返回值类型。定义 fun 函数:提供函数的实现,包括函数头和函数体。调用 fun 函数:使用函数调用语句,传递参数并接收返回值。例如,在代码中声明
    c语言中fun函数怎么调用
    2024-05-10

    c语言中seek函数怎么调用

    在C语言中,seek函数用于设置文件指针的位置。其调用方式如下:```c#include int fseek(FILE *stream, long offset, int origin);```其中,stream是指向文件的指针;offse
    2023-09-14

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录