Non ho mai utilizzato le api in vb.net:
Volevo sapere se sbaglio nel dichiarare l' API o se l' errore dipende da altro.

Questo è il codice:

codice:
Public Class Form1

    'E' giusta qui la dichiarazione?
    Private Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Dim R As Integer
        R = GetAsyncKeyState(Keys.CapsLock) 'qui mi da l' errore *
        If R < 0 Then MsgBox("CapsLock è Attivato")
    End Sub

End Class
* Quando chiamo la funzione con GetAsyncKeyState ottengo questo errore:

Una chiamata alla funzione PInvoke 'prjGetAsyncKeyState!prjGetAsyncKeyState.Form1::Ge tAsyncKeyState' ha sbilanciato lo stack. Questo problema può verificarsi quando la firma PInvoke gestita non corrisponde alla firma di destinazione non gestita. Verificare che la convenzione di chiamata e i parametri della firma PInvoke corrispondano alla firma di destinazione non gestita.
Qualcuno mi può aiutare?