下面这段代码,在.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 签名的调用约定和参数与非托管的目标签名是否匹配。