Come si fa ad inviare/ricevere file in VB.NET tramite USB?
Ho trovato un paio di librerie, ma nessun sorgente di esempio in VB.net, solo in c++...

L'unica che dovrebbe funzionare è questa (l'altra che ho trovato e bacata e non piu' sviluppata); sto provando a convertire i sorgenti c# in VB.net, ma senza successo.

Per esempio, questa funzione mi dà sempre errore:

codice:
       private bool openDevice(int index)
        {
            int ret;

            bool bRtn = false;

            closeDevice();
            chkRead.CheckedChanged -= chkRead_CheckedChanged;
            chkRead.Checked = false;
            cmdRead.Enabled = true;
            chkRead.CheckedChanged += chkRead_CheckedChanged;

            mDev = mDevList[index];
            mDev.Open();

            Debug.Assert(mDev.SetConfiguration(1) == 0);
            Debug.Assert(mDev.ClaimInterface(0) == 0);

            mEpReader = mDev.OpenBulkEndpointReader(ReadEndpoints.Ep01);
            mEpWriter = mDev.OpenBulkEndpointWriter(WriteEndpoints.Ep01);
            mEpReader.DataReceived += mEp_DataReceived;
            panTransfer.Enabled = true;

            byte bTestType;
            if (mDev.Info.IdVendor == VID && mDev.Info.IdProduct == PID)
                if (getTestType(out bTestType))
                {
                    if (bTestType != 3)
                    {
                        ret = mDev.IOControlMessage(0xC0, 14, 3, 0, new byte[0], 1000);
                        if (ret >= 0)
                        {
                            byte[] _bTemp = new byte[64];
                            Int64 tickStart = DateTime.Now.Ticks;
                            while ((DateTime.Now.Ticks - tickStart) < 50000000)
                            {
                                ret = mEpReader.Read(_bTemp, 1000);
                                if (ret >= 0)
                                {
                                    if ((ret == 1) && (_bTemp[0] == 0x80))
                                    {
                                        bRtn = true;
                                        break;
                                    }
                                }
                                Application.DoEvents();
                            }
                        }
                    }
                    else
                        bRtn = true;
                }
            if (bRtn)
                tsStatus.Text = "Device Opened.";
            else
                tsStatus.Text = "Device Failed to Opened!";

            return bRtn;
        }
Mia versione VB:

codice:
 Function openDevice(ByVal index As Integer) As Boolean

        Dim ret As Integer
        Dim bRtn As Boolean
        Dim bTestType As Byte
        Dim _bTemp(64) As Byte
        Dim tickStart As Int64
        bRtn = False
        Dim b(100) As Byte
        ' closeDevice();

        mDev = mDevList(index)
        mDev.Open()

        Debug.Assert(mDev.SetConfiguration(1) = 0)
        Debug.Assert(mDev.ClaimInterface(0) = 0)

        mEpReader = mDev.OpenBulkEndpointReader(ReadEndpoints.Ep01)
        mEpWriter = mDev.OpenBulkEndpointWriter(WriteEndpoints.Ep01)
        ' mEpReader.DataReceived = mEpReader.DataReceived + mEp_DataReceived

        If getTestType(bTestType) Then
            If bTestType <> 3 Then
                ret = mDev.IOControlMessage(192, 14, 3, 0, b, 1000)
                If ret >= 0 Then
                    tickStart = DateTime.Now.Ticks
                    While (DateTime.Now.Ticks - tickStart) < 50000000
                        ret = mEpReader.Read(_bTemp, 1000)
                        If ret >= 0 Then
                            If ret = 1 And _bTemp(0) = 128 Then
                                bRtn = True
                                Exit While
                            End If
                        End If
                        Application.DoEvents()
                    End While
                End If
            Else
                bRtn = True
            End If
        End If
        If (bRtn) Then
            Debug.Print("Device successfully Opened.")
        Else
            Debug.Print("Device Failed to Opened!")
        End If
        Return bRtn
    End Function