下面这段代码,在.Net framework 3.5版本到2.0版都没有问题,但是如果是4.0版的就会出现错误,
private void Form1_Load(object sender, EventArgs e)
{
mouseHookCallBack = new Hook.HookProc(HookCallBack); MouesHook = Hook.SetHook((int)Hook.HookTypes.WH_MOUSE_LL, mouseHookCallBack); if (MouesHook == null)
{
MessageBox.Show("鼠标钩子设置失败");
}
}
出错的语句是:Hook.SetHook((int)Hook.HookTypes.WH_MOUSE_LL, mouseHookCallBack);
出错的提示信息是:对 PInvoke 函数“ControlEx!ControlEx.Hook::SetHook”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
private void Form1_Load(object sender, EventArgs e)
{
mouseHookCallBack = new Hook.HookProc(HookCallBack); MouesHook = Hook.SetHook((int)Hook.HookTypes.WH_MOUSE_LL, mouseHookCallBack); if (MouesHook == null)
{
MessageBox.Show("鼠标钩子设置失败");
}
}
出错的语句是:Hook.SetHook((int)Hook.HookTypes.WH_MOUSE_LL, mouseHookCallBack);
出错的提示信息是:对 PInvoke 函数“ControlEx!ControlEx.Hook::SetHook”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货