C++ 回调函数的简单例子

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wnlwcg/article/details/6930990
收起
调用端

复制代码
//下面的这个_stdcall很重要的 
void _stdcall Test(int n, string str) //如果不定义全局变量,而定义在类中 则必须是 静态成员函数
{
  while(n-->0)
  cout<<n<<" "<<str<<endl;
}
int main(int argc, char* argv[])
{
  Call call;
  call.SetFun((MyFun)Test); //调回调函数的接口,并传入一个函数作为参数
  call.LetRun(10,"hello"); 

  printf("Hello World!\n");
  return 0;
}
复制代码

被调用端

复制代码
typedef void (_stdcall *MyFun)(int n, string str);

class Call
{
private:
    MyFun myFun;
public:
    void SetFun(MyFun _myFun)
    {
        myFun = _myFun; 
    }

    void LetRun(int n, string str) 
    {
        myFun(n, str); 
    } 
};    
复制代码

 

回调过程:调用回调接口【SetFun】  并设置一回调接受函数【Test】  ----->  保存 被调用端传来的 参数 【myFun】-----> 等待.....-----> 

                    LetRun ----->myFun------>回调到Test
————————————————
版权声明:本文为CSDN博主「wnlwcg」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wnlwcg/article/details/6930990

posted @   阳光下的小土豆  阅读(792)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示