您的位置:首页 > 编程语言 > C语言/C++

c++.dll打印日志到c#界面,使用回调函数

2016-04-22 13:58 1086 查看
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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: