ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

调用c++写的Dll文件并且有回调的写法

2021-12-31 19:02:34  阅读:108  来源: 互联网

标签:Mmsg string c++ Dll globalCallbackProcedure RenderCallback server 写法 public


其中回调函数为 RenderCallback p_func

/// <summary>
        /// 初始化
        /// </summary>
        /// <param name="p_enterise_id">企业ID</param>
        /// <param name="p_settings">设备属性</param>
        /// <param name="p_device_infos">获取到设备信息 JSON</param>
        /// <param name="p_server_url">预留的server URL地址,目前可设置为"https://evn.xjnetworks.com/" </param>
        /// <param name="p_func">回调函数接口</param>
        /// <returns></returns>
        [DllImport("xjsdk.dll", EntryPoint = "XJSdkInit", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]
        public static extern int XJSdkInit(string p_enterise_id, string p_settings, string p_device_infos, string p_server_url, RenderCallback p_func);

1定义委托类:

  /// <summary>
        /// 设定委托
        /// </summary>
        /// <param name="event_type"></param>
        /// <param name="p_data"></param>
        [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
        public delegate void RenderCallback(int event_type, string p_data);
 public static RenderCallback RemoteMsgCallBack;///实例化
        public static void RegistRemoteMsgCallBack(string p_enterise_id, string p_settings, string p_device_infos, string p_server_url, RenderCallback p_func)
        {
           XJSdkInit(p_enterise_id, p_settings, p_device_infos, p_server_url, RemoteMsgCallBack); 
        }///重写操作

程序端调用方法:

 DllBaseSDK.RemoteMsgCallBack = CallBackFunction;
    DllBaseSDK.RegistRemoteMsgCallBack(Mmsg.QiyeId, Mmsg.SBName, MsgAll, Url, CallBackFunction);

也可以是这样的:

 public RenderCallback globalCallbackProcedure;//全局调用委托
 
 globalCallbackProcedure = new RenderCallback(CallBackFunction);//loading里写
 
  DllBaseSDK.RegistRemoteMsgCallBack(Mmsg.QiyeId, Mmsg.SBName, MsgAll, Url, globalCallbackProcedure );//最后是调用

标签:Mmsg,string,c++,Dll,globalCallbackProcedure,RenderCallback,server,写法,public
来源: https://blog.csdn.net/weixin_40029679/article/details/122260997

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有