[VB.NET] PInvoke functie problemen,stack in onbalans?*

Pagina: 1
Acties:
  • 167 views sinds 30-01-2008
  • Reageer

  • Sjoerd
  • Registratie: December 2003
  • Niet online
Ik probeer mijn toetsen te capturen met vb.net alsook mijn muisklik maar loop tegen volgend probleem aan:

"Een aanroep naar PInvoke-functie Paralellepoort Data Parser!Paralellepoort _Data_Parser.Form1::GetAsyncKeyState heeft de stack in onbalans gebracht. Dit komt waarschijnlijk doordat de PInvoke-handtekening met begeleiding niet overeenkomt met de doelhandtekening zonder begeleiding. Controleer of de aanroepconventie en parameters van de PInvoke-handtekening overeenkomen met de doelhandtekening zonder begeleiding."

Geweldige foutmelding! Als ik wist wat het betekende...
Google weet ook weinig te vertellen hierover...

Stukje code

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Declare Function GetAsyncKeyState Lib "user32.dll" Alias "user32" _
(ByVal vKey As Integer) As Integer


 Private Sub TimerToetsen_Tick(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles TimerToetsen.Tick
        Dim result As Integer
        Dim keyboard() As String 'array met aanslagen
        Dim tel As Integer 'teller voor  het toevoegen van aanslagen in de array

        For i As Integer = 1 To 255
            result = 0
            result = GetAsyncKeyState(i)  [b]'hier gaat hij de fout in[/b]
            If result = -32767 Then

                ReDim Preserve keyboard(tel)
                keyboard(tel) = Chr(i)
                tel += 1
            End If
        Next
    End Sub


Wie ziet het probleem? :)
Het rare is dat ik deze code al had en hij volgens mij onder xp toen wel werkte (al is het een ander project), draai nu Vista...


edit: Titel: "PInvoke functie problemen" vergeten 8)7

Modelbouw - Alles over modelbouw, van RC tot diorama


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:54
Dit heeft waarschijnlijk te maken met het feit dat je die method aan roept in een andere thread ... (Die timer loopt op een andere thread ).

https://fgheysels.github.io/


  • Sjoerd
  • Registratie: December 2003
  • Niet online
Hoe kan ik ervoor zorgen dat deze in dezelfde "thread" werken? Op andere plekken de timer oproepen geeft geen verschil blijkt.

Modelbouw - Alles over modelbouw, van RC tot diorama