Har försökt att få tdRegisterDeviceEvent fungera i VB6 men får det inte att fungera.
Något händer ändå för att när jag trycker på fjärren så krachar det.
- Problemsignatur:
Problemhändelsens namn: APPCRASH
Programnamn: TellStick VB-example - simple.exe
Programversion: 1.0.0.0
Programtidsstämpel: 4ebfb57a
Namn på felmodul: StackHash_0a9e
Modulens version: 0.0.0.0
Tidsstämpel för felmodul: 00000000
Undantagskod: c0000005
Undantagsförskjutning: 0018f66b
OS-version: 6.1.7601.2.1.0.256.48
Språkvariant-ID: 1053
Ytterligare information 1: 0a9e
Ytterligare information 2: 0a9e372d3b4ad19135b953a78882e789
Ytterligare information 3: 0a9e
Ytterligare information 4: 0a9e372d3b4ad19135b953a78882e789
Code: Select all
Option Explicit
Option Base 0
Const cstrServiceName As String = "TelldusService"
Private prbolShuttingDown As Boolean
Private prlngCounter As Long
Private prlngDelayTime As Long
Private Sub cmdEventStart_Click()
GFHEventStart
End Sub
Private Sub cmdEventStopp_Click()
GFHEventStop
End Sub
Private Sub cmdExit_Click()
tdClose
prbolShuttingDown = True
Unload frmMain
End Sub
Private Sub Form_Load()
tdInit
prbolShuttingDown = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
If (prbolShuttingDown = False) Then tdClose
End Sub
Code: Select all
Option Explicit
Option Base 0
Public pubCallbackId As Long
Sub Main()
frmMain.Show
End Sub
''typedef void (WINAPI *TDDeviceEvent)(int deviceId, int method, const char *data, int callbackId, void *context);
Sub GFHEvent(ByVal deviceId As Long, _
ByVal method As Long, _
ByRef data As String, _
ByVal callbackId As Long, _
ByRef context As Variant)
frmMain.txtEventCounter = frmMain.txtEventCounter + 1
End Sub
Sub GFHEventStart()
Dim tdd As TDDeviceEvent
frmMain.txtEventCounter = 0
pubCallbackId = tdRegisterDeviceEvent(AddressOf GFHEvent, tdd)
frmMain.txtIN = GFHConvert(AddressOf GFHEvent) & vbCrLf
frmMain.txtIN = frmMain.txtIN & Hex(GFHConvert(AddressOf GFHEvent)) & vbCrLf
frmMain.txtIN = frmMain.txtIN & pubCallbackId & vbCrLf
frmMain.txtIN = frmMain.txtIN & "=================" & vbCrLf
End Sub
Sub GFHEventStop()
Call tdUnregisterCallback(pubCallbackId)
End Sub
Function GFHConvert(plng As Long) As Long
GFHConvert = plng
End Function
Code: Select all
Option Explicit
Option Base 0
Public Declare Sub tdInit Lib "TelldusCore.dll" ()
Public Declare Sub tdClose Lib "TelldusCore.dll" ()
Public Declare Function tdRegisterDeviceEvent Lib "TelldusCore.dll" (ByRef TDDeviceEvent As Variant, ByRef context As Variant) As Long
Public Declare Function tdUnregisterCallback Lib "TelldusCore.dll" (ByVal callbackId As Long) As Boolean
Code: Select all
Option Explicit
Option Base 0
Public Type TDDeviceEvent
deviceId As Long
method As Long
data As String
callbackId As Long
context As Variant
End Type