zoukankan      html  css  js  c++  java
  • 动态库 DLL 封装四:对dll二次封装,开放回调函数,并减少回调函数中参数个数

    背景:

      我需要对一个dll进行二次封装,其中有一个接口,里面的参数需要传回调函数。

    需求:

      这个回调函数,我需要开放出去,并且减少回调函数参数的个数

    示例:

    // 回调原型
    VOID __stdcall ImageCallback(HWND hWnd, BSTR imgBase64, ULONG_PTR userdata);
    
    // 接口原型
    void __stdcall Image(ImageCallback fImage, ULONG_PTR pImage);
    
    
    
    /*
    * a.h
    */
    // 回调
    typedef void(__stdcall* imgCallback)(BSTR imgBase64);
    
    // 接口
    void __stdcall Test(imgCallback fun);
    
    
    
    /*
    * a.cpp
    */
    imgCallback f = NULL;
    VOID __stdcall ImageCallbackTest(HWND hWnd, BSTR imgBase64, ULONG_PTR userdata)
    {
        f(imgBase64);
    }
    
    void __stdcall Test(imgCallback fun)
    {
        f = fun;
        Image(ImageCallbackTest, NULL);
    }

    现在别人调用我的回调的时候,就只有一个参数了

  • 相关阅读:
    local http
    redis 存储时间区间的数据
    json 和 jsonp
    ssdb 常用命令行
    php 冒泡排序
    pdo 函数
    异步的消息队列
    php 全局变量$_SERVER
    php 技能树
    get_called_class/get_class方法
  • 原文地址:https://www.cnblogs.com/shiyixirui/p/15330577.html
Copyright © 2011-2022 走看看