Zeigerproblem bzw. Callback
-
Hallo, ich habe ein Problem mit einer Callback Sub/ Function..
Der Funktionsprototyp sieht wie folgt aus (vorgegeben aus einer DLL)
Public Declare Function UUIRTSetReceiveCallback Lib "uuirtdrv.dll" _ (ByVal hHandle As Long, ByVal pReceiveProc As Long, ByVal userData As Form) As LongDie Function spaeter rufe ich wie folgt auf:
res = CBool(UUIRTSetReceiveCallback(hDrvHandle, AddressOf IRReceiveCallback, Me))Und hier die Sub:
Public Sub IRReceiveCallback(ByVal IRCode As Long, ByVal userData As Long) PostMessageA(gHiddenWindow, WM_GOT_RECEIVE, 0, IRCode) End SubFehlermeldung lautet:
Error 1 'AddressOf' expression cannot be converted to 'Long' because 'Long' is not a delegate type.Kann mir bitte jemand helfen!?
-
Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Guck dir mal Marshal.GetFunctionPointerForDelegate an, damit müsste es gehen.
Vorausgesetzt du verwendest das .NET Framework 2.x (Studio 2005) - mit 1.x (Studio 2003) wird das vermutlich haarig.Weiters solltest du statt Long wohl besser IntPtr verwenden.