0
を与える私はGetCursorPosを使用して、私のカーソルの位置を取得しようとしているが、それは、私はそれが何を意味するのか、または続行する方法を見つけ出すことができないんだカーソル位置がPInvokeStackImbalanceエラーに
Managed Debugging Assistant 'PInvokeStackImbalance' : 'A call to PInvoke function 'MoveClickApp!MoveClickApp.Module1::GetCursorPos' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.'
私にエラーを与えます。何か案は?この方法に
Public Declare Function GetCursorPos Lib "user32" (ByVal lpPoint As POINTAPI) As UInt32
Public Structure POINTAPI
Dim x As UInt32
Dim y As UInt32
End Structure
Public Function GetX() As UInt32
Dim n As POINTAPI
GetCursorPos(n)
GetX = n.x
End Function
Public Function GetY() As UInt32
Dim n As POINTAPI
GetCursorPos(n)
GetY = n.y
End Function
代替もまた、あなたはUINT32、xとyのためInteger
タイプを使用していないする必要があり、あなたの構造上LayoutKind
を含める必要が
これは助けになりました!私は実際にこれらの<>コマンドを前にvbでマーシャリングしていないので、これは私が完全に理解するために調べる必要があるものです。奇妙なことに、この修正により無関係なSetCursorPosコマンドの誤動作が発生しましたが、私はそれを理解しようとします。助けてくれてありがとう – Zyzyx