c++.dll打印日志到c#界面,使用回调函数
2016-04-22 13:58
1086 查看
c#代码:
c++代码:
public delegate void LogCallBack(string logInfo); private LogCallBack Log = null;// 成员变量 Log = new LogCallBack(LogPrint);// LogPrint为c#日志打印函数 AppContext.SetDisplayLog(Log);// 调用c++方法 private void LogPrint(string logText) { string info = DateTime.Now.ToString("【HH:mm:ss】") + logText + "\r\n"; this.BeginInvoke(new Action(() => { rtbRunlog.AppendText(info); rtbRunlog.Focus(); rtbRunlog.Select(rtbRunlog.TextLength, 0); })); } [DllImport("xx.dll", EntryPoint = "SetDisplayLog", CallingConvention = CallingConvention.Cdecl)] public static extern void SetDisplayLog(LogCallBack logCallBack);
c++代码:
typedef void (_stdcall *LogCallBack)(char* logText); // 注册日志回调函数 void SetDisplayLog(LogCallBack DisplayLog) { appContext::SetLog(DisplayLog); }
相关文章推荐
- C++字符串
- 【学习C++】C++ Primer Plus (第六版)第八章编程练习1-7
- C语言中如何将数转化为字符串
- PAT (Basic Level) Practise (中文)1031. 查验身份证(15)
- PAT (Basic Level) Practise (中文)1030. 完美数列(25)
- c/c++中extern用来声明全局变量
- gsoap xml 自动映射 C/C++
- 【C++】引用计数
- VS2010添加附加头文件和附加库方法
- C++注释规范
- C++语言实现的WebService开发库—gsoap应用介绍
- 二叉树的简单递归实现(创建,遍历,高度,大小)
- C++中头文件相互包含与前置声明
- c++ vector(向量)使用方法详解
- C++第5次上机实验
- C++实验四
- C++第5次上机作业
- Eclipse IDE for C/C++ 配置
- C++第4次实验项目2-学生类
- c++第四次试验——作业