C# – PInvokeStackImbalance在一个记录良好的函数中检测到?
这是我的ClickMouse()函数的代码:
[DllImport("user32.dll",CharSet = CharSet.Auto,CallingConvention = CallingConvention.StdCall)] public static extern void mouse_event(long dwFlags,long dx,long dy,long cButtons,long dwExtraInfo); private const long MOUSEEVENTF_LEFTDOWN = 0x02; private const long MOUSEEVENTF_LEFTUP = 0x04; private const long MOUSEEVENTF_RIGHTDOWN = 0x08; private const long MOUSEEVENTF_RIGHTUP = 0x10; private void ClickMouse() { long X = Cursor.Position.X; long Y = Cursor.Position.Y; mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP,X,Y,0); } 由于某些原因,当我的程序来到这个代码,它会抛出这个错误信息:
请帮忙? 解决方法
看起来你的DllImport声明是错误的.特别是使用Int64(longs),而不是UInt32.
以下是PInvoke参考的一些细节: [DllImport("user32.dll")] static extern void mouse_event(uint dwFlags,uint dx,uint dy,uint dwData,UIntPtr dwExtraInfo); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |