[DllImport("user32.dll", CharSet = CharSet.Auto,CallingConvention=CallingConvention.Cdecl)]
public static extern void mouse_event(MouseEvents dwFlags);//, long dx, long dy, long cButtons, long dwExtraInfo);
public enum MouseEvents : uint
{
MOUSEEVENTF_LEFTDOWN = 0x2,
MOUSEEVENTF_LEFTUP = 0x4,
MOUSEEVENTF_MIDDLEDOWN = 0x20,
MOUSEEVENTF_MIDDLEUP = 0x40,
MOUSEEVENTF_MOVE = 0x1,
//MOUSEEVENTF_ABSOLUTE = 0x8000,
MOUSEEVENTF_RIGHTDOWN = 0x8,
MOUSEEVENTF_RIGHTUP = 0x10,
}
这是代码api的代码,运行就出现 对 PInvoke 函数“windowsapplication:form1::mouse_event”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
急等啊!
public static extern void mouse_event(MouseEvents dwFlags);//, long dx, long dy, long cButtons, long dwExtraInfo);
public enum MouseEvents : uint
{
MOUSEEVENTF_LEFTDOWN = 0x2,
MOUSEEVENTF_LEFTUP = 0x4,
MOUSEEVENTF_MIDDLEDOWN = 0x20,
MOUSEEVENTF_MIDDLEUP = 0x40,
MOUSEEVENTF_MOVE = 0x1,
//MOUSEEVENTF_ABSOLUTE = 0x8000,
MOUSEEVENTF_RIGHTDOWN = 0x8,
MOUSEEVENTF_RIGHTUP = 0x10,
}
这是代码api的代码,运行就出现 对 PInvoke 函数“windowsapplication:form1::mouse_event”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。
急等啊!
DWORD dwFlags,
DWORD dx,
DWORD dy,
DWORD dwData,
ULONG_PTR dwExtraInfo
);
[DllImport("user32.dll", CallingConvention=CallingConvention.StdCall)] //WINAPI is _stdcall
public static extern void mouse_event(MouseEvents dwFlags, int dx, int dy, int cButtons, IntPtr dwExtraInfo);