永发信息网

c#调用sdk时,求教回调函数如何处理

答案:1  悬赏:70  手机版
解决时间 2021-03-20 02:59
c#调用sdk时,求教回调函数如何处理
最佳答案
回调函数用.NET中的委托处理
比如SDK中有个查找所有窗口的函数:
[DllImport("user32")]
private static extern bool EnumWindows(DelegateEnumWindow ew, int lParam);
上面的参数ew就是一个委托(回调函数),再看这个参数的声明:
delegate bool DelegateEnumWindow(IntPtr hWnd, int lParam);

再看调用:
DelegateEnumWindow dew = new DelegateEnumWindow(CallBackProc);//实例化委托
EnumWindows(dew, 0);//调用API

再看CallBacProc的定义:
private bool CallBackProc(IntPtr hWnd, int lParam)
{
//在这里实现自己的查找逻辑,比如窗口的类名为XXXXX.
StringBuilder sb = new StringBuilder(256);
GetWindowText(hWnd, sb, sb.Capacity);
if(sb.ToString() == "XXX")
{
Console.WriteLine(" 找到了"); return true;
}
return false;
}

CallBackProc函数是由系统自动调用(调用者是EnumWindows函数),而不是由程序员调用
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
PSP怎么放电池
英语作文my cat
爱转角(转角遇到爱插曲) 罗志祥歌词
罗咏红口腔诊所地址有知道的么?有点事想过去
腰椎管狭窄要如何锻炼
求生之路怎么邀请好友
八什么九什么成语
海绵砂纸比水砂纸好的优点有哪些?
竹子有种子吗
杂菌海鲜冬荫汤的做法,杂菌海鲜冬荫汤怎么做
阳勤投资今天官网怎么打不开了?
要水浒传的摘抄和感想4篇是第一到第十二回的
吴库这个地址在什么地方,我要处理点事
惠州到龙门多少公里确定惠州到龙门多少公里
石头求鉴定材质和欣赏价值
推荐资讯
数学中的派在语文读什么,组词叫派立
怎样办理支付宝?又如何使用支付宝?
眼睛下方八字深沟怎么去掉
怎么区分牛羊角梳和牛角梳子的区别的
从北京到扬州有哪几次列车,大概要做多长时间
请教:物料有多个BOM,运行MRP如何指定跑哪个BO
中国代表团如何在亚运赛场掀起青春风暴?
g1008今天有没有晚点
用一只手拍打另一只手的臂弯真的能拍出体内的
腾跃投资咨询有限公司在哪里啊,我有事要去这
工行病退工资怎么算
英皇水族箱质量怎么样
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?