调用C++的dll实现函数回调

1、外部定义回调函数

//C#定义的回调函数,	
void callBackFunc(EnumLogContentType Info, char* Title, char* Message, int TitleSize, int MessageSize)
{
	string temp1 = Title;
	string temp2 = Message;
	cout << "Info  "<<temp1 <<"  "<< temp2<<"  "<<TitleSize << "  " << MessageSize <<endl;

	return;
}

2、dll内部定义接口函数、回调函数类型、保存回调函数指针,调用回调函数

//接口
extern "C" _declspec(dllexport) void AlgoSetLogCallBackPoint(callBack consume_bytes);

void AlgoSetLogCallBackPoint(callBack consume_bytes)
{
	if (consume_bytes == NULL)
		return;

	AlgoCallBackBuff = consume_bytes;

	return ;
}


//回调函数类型
typedef void (*callBack)(EnumLogContentType Info, char* Title, char* Message, int TitleSize, int MessageSize);

//保存回调函数指针
static callBack AlgoCallBackBuff;

//调用回调函数
sprintf(m_cLogTitle, "Algo.RingDataProcessor.HazeMap");
sprintf(m_cLogMessage, "Camera%d: HazeMap Combine Start.", m_iCameraId);
AlgoCallBackBuff(Info, m_cLogTitle, m_cLogMessage, strlen(m_cLogTitle), strlen(m_cLogMessage));

3、外部主函数调用接口

AlgoSetLogCallBackPoint(callBackFunc);

 

完成,1、主函数调用接口设置回调函数的指针;2、主函数调用其他接口函数;3、接口函数内使用回调函数指针,即可在外部得到响应。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值