Salve a tutti,
Sto tentando di fare un programma che mi gestisca una periferica utilizzando le librerie e il materiale che la casa mi ha messo a disposizione. Tra le cose che ho trovato in rete c'è il sorgente di un piccolo applicativo scritto in Visual Basic 6.0 e iniziando da quello ho pensato di costruire il mio in VB.NET. Il mio problema è che ad un certo punto devo dichiarare una funzione di una libreria che a sua volta dovrà chiamare una mia funzione che (da quel che ho capito) si chiama "delagata". Lascio spazio al codice che è più chiaro:
codice:
Private Declare Function GUICallbacks Lib "PvFw.dll" ( _
    ByVal ModuleHandle As Long, ByVal GuiStreamingCasllback As Long, _
    ByVal GuiStreamingCallbackCtx As Long, ByVal GuiStateCallback As Long, _
    ByRef GuiStateCallbackCtx As Long) As Long
Per utilizzare questa funzione mi portano in codice Visual Basic 6.0:
codice:
'Usage
    Dim ret As Long
    ret = GUICallbacks(myHandle, 0&, 0&, AddressOf GUI_STATE_CALLBACK, 0&)
End Sub
'dove mi dicono che
Public Sub GUI_STATE_CALLBACK (ByVal GuiStateCallbackCtx As Long, _
                          ByVal GuiState As Long, ByVal Response As Byte, _
                          ByVal Message As Long, ByVal Progress As Byte, _
                          ByVal SampleBuffer As Long)
    Dim msg As String
    Select Case Message
        Case &H2030200
            Msg = ... 
    End Select
    'Display Guidance message
    Form1.Label1.Caption = GuidanceMsg   'Exemle
End Sub
Se io tento di riportare nel mio progetto un codice simile quando chiamo la funzione GUICallbacks(myHandle, 0&, 0&, AddressOf GUI_STATE_CALLBACK, 0&) mi segnala che "l'espressione 'AddressOf' non può essere convertita in 'Long' perché 'Long' non è un tipo delegato.
Ho provato a vedere se creando un tipo "delegate" riuscivo a farlo diventare un Long (che dovrebbe essere un puntatore alla cella di memoria che contiene la funzione) ma il fatto che stia scrivendo qui è la prova che non ci sono riuscito.

Questa volta sono proprioo disperato. Utilizzo Visual Basic 2008 Professioal edition.