Visual Basic 2005 Express, benötige API FAQ!?

mahon

Grünschnabel
Hi zusammen,

Ich Programmiere schon seit geraumer Zeit, allerdings bin ich erst seit kurzen auf WinApi's gestossen. Und die stellen ein unüberwindliches Hinderniss für mich da.
Anscheinend bin ich zu Blöd.

z.B. führt dieser Code zu folgendem Fehler
Code:
Private Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long 

dim result as long 
result = beep(800,10)

Ein Aufruf an die PInvoke-Funktion "soundcheck!soundcheck.Form1::Beep" hat das Gleichgewicht des Stapels gestört. Wahrscheinlich stimmt die verwaltete PInvoke-Signatur nicht mit der nicht verwalteten Zielsignatur überein. Überprüfen Sie, ob die Aufrufkonvention und die Parameter der PInvoke-Signatur mit der nicht verwalteten Zielsignatur übereinstimmen.

wo ist der Fehler?
 
Der Fehler ist, das du es falsch deklariert hast. So lautet die richtige Deklaration:
Code:
Declare Function Beep Lib "kernel32.dll" (dwFreq As Integer, dwDuration As Integer) As Boolean

Aufrufen tust du es dann einfach mit Beep(100, 5) oder halt mit deinen Werten.
 
hmmm OK... t.

aber jetzt kapier ich gar nichts mehr?

Das ist doch ne Windows API.... wieso sind das auf einmal Integer und Boolean?
 
Zurück