Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-02-2007, 22:43   #1
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
[VB6] Problema con DLL

Ho creato una dll e sto provando ad usarla in un progetto (è la prima volta che la uso quindi è una specie di test).
Questa dll ha solo metodi, non proprietà

Mi da subito un problema:
- Variabile oggetto o variabile del blocco With non impostata (errore 91)
Su una riga dove uso x la prima volta un metodo della dll
Inoltre l'errore me lo da anche se richiamo un qualsiasi altro metodo

Credo di aver dichiarato correttamente l'oggetto e cioè:
Codice:
Dim Session As WPop
Set Session = New WPop
L'oggetto si chiama WPop

La dll è inserita tra i Riferimenti del progetto.

Dov'è il problema?

PS: è la prima dll che faccio quindi potrei anche aver saltato qualche passaggio banale nella creazione.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2007, 23:01   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Visto che non è lungo vi copio qui anche il codice della dll:
Codice:
Private WithEvents pop3 As Winsock

Public Type Sender
    Name As String
    Mail As String
End Type

Private Enum POP3States             'The POP3 states enum
    DISCONNECTED
    CONNECTED
    PROBLEM
    USEROK
    PASSOK
    REQSTAT
    STATOK
    REQTOP
    TOPOK
    REQRETR
    RETR
    RETROK
    REQDELE
    DELEOK
End Enum

Private State As POP3States
Private RecData As String
Private Message As String

Private Sub Class_Initialize()
    State = DISCONNECTED
End Sub

'------------------------------------FUNCTIONS

Public Function Connect(ByVal Server As String, ByVal Port As String, _
                        ByVal User As String, ByVal Pass As String) As Integer
    
    pop3.Connect Server, Port
    Do While State <> CONNECTED And PROBLEM
        DoEvents
    Loop
    If State = PROBLEM Then
        Connect = -1
        Exit Function
    End If
    
    pop3.SendData "user " + User + vbCrLf
    Do While State <> USEROK And PROBLEM
        DoEvents
    Loop
    If State = PROBLEM Then
        Connect = -1
        Exit Function
    End If
    
    pop3.SendData "pass " + Pass + vbCrLf
    Do While State <> PASSOK And PROBLEM
        DoEvents
    Loop
    If State = PROBLEM Then
        Connect = -1
        Exit Function
    End If

    Connect = 0
End Function

Public Function MexCount() As Integer
    State = REQSTAT
    pop3.SendData "stat" + vbCrLf
    Do While State <> STATOK And PROBLEM
        DoEvents
    Loop
    If State = PROBLEM Then
        MexCount = -1
        Exit Function
    End If
    
    MexCount = Val(Mid(RecData, 5, InStr(5, RecData, " ") - 5))
End Function

Public Function GetMex(ByVal n As Integer) As String
    State = REQRETR
    pop3.SendData "retr " + n + vbCrLf
    Do While State <> RETROK And PROBLEM
        DoEvents
    Loop
    If State = PROBLEM Then
        GetMex = "Questo messaggio non esiste"
        Exit Function
    End If
    
    GetMex = Message
End Function

Public Function MexSender(ByVal n As Integer) As Sender

    State = REQTOP
    pop3.SendData "top " + n + " 1" + vbCrLf
    Do While State <> TOPOK And PROBLEM
        DoEvents
    Loop
    If State = PROBLEM Then
        Exit Function
    End If
    
    Dim strTop() As String
    strTop = Split(txtOut.Text, vbCrLf)
    Dim i As Integer
    For i = 0 To UBound(strTop)
        If UCase(Left(strTop(i), 6)) = "FROM: " Then
            Exit For
        End If
    Next i
    
    Dim Temp As String
    Temp = strTop(i)
    Temp = Right(Temp, Len(Temp) - 6)
    
    If Left(Temp, 1) <> "<" Then
        If Left(Temp, 1) = Chr(34) Then
            Temp = Right(Temp, Len(Temp) - 1)
            MexSender.Name = Mid(Temp, 1, InStr(1, Temp, Chr(34)) - 1)
            Temp = Right(Temp, Len(Temp) - InStr(1, Temp, Chr(34)) - 1)
        Else
            MexSender.Name = Mid(Temp, 1, InStr(1, Temp, "<") - 2)
            Temp = Mid(Temp, InStr(1, Temp, "<"))
        End If
    Else
        MexSender.Name = ""
    End If
    
    Temp = Mid(Temp, 2)
    Temp = Left(Temp, Len(Temp) - 1)
    MexSender.Mail = Temp
            
End Function

Public Function DeleteMex(ByVal n As Integer) As Integer
    State = REQDELE
    pop3.SendData "dele " + n + vbCrLf
    Do While State <> DELEOK And PROBLEM
        DoEvents
    Loop
    If State = PROBLEM Then
        DeleteMex = -1
        Exit Function
    End If
    
    DeleteMex = 0
End Function

'------------------------------------SUB

Public Sub Disconnect()
    State = DISCONNECTED
    pop3.Close
End Sub

'------------------------------------POP3

Private Sub pop3_DataArrival(ByVal bytesTotal As Long)

    pop3.GetData RecData
    
    Select Case (State)
        Case DISCONNECTED
            If Left(RecData, 1) = "+" Then
                State = CONNECTED
            Else
                State = PROBLEM
            End If
        Case CONNECTED
            If Left(RecData, 1) = "+" Then
                State = USEROK
            Else
                State = PROBLEM
            End If
        Case USEROK
            If Left(RecData, 1) = "+" Then
                State = PASSOK
            Else
                State = PROBLEM
            End If
        Case REQSTAT
            If Left(RecData, 1) = "+" Then
                State = STATOK
            Else
                State = PROBLEM
            End If
        Case REQTOP
            If UCase(Left(RecData, 8)) = "RECEIVED" Then
                State = TOPOK
            ElseIf Left(RecData, 1) = "-" Then
                State = PROBLEM
            End If
        Case REQRETR
            If Left(RecData, 1) = "+" Then
                Message = ""
                State = RETR
            Else
                State = PROBLEM
            End If
        Case RETR
            Message = Message + RecData
            If Right(RecData, 5) = vbCrLf + "." + vbCrLf Then
                State = RETROK
            End If
        Case REQDELE
            If Left(RecData, 1) = "+" Then
                State = DELEOK
            Else
                State = PROBLEM
            End If
    End Select
End Sub
Il codice è funzionante, lo so perchè l'ho testato in un altro programma, quello che non mi riesce è incapsularlo in una dll..
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 01-03-2007, 13:10   #3
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Ho risolto il problema, bisognava mettere l'oggetto winsock tra i riferimenti e non tra i componenti come ho fatto io e fare una
Codice:
set pop3=new winsock
alla initialize e una
Codice:
set pop3=nothing
alla terminate

Ora ho un altro problema, ho compilato il programma e creato l'eseguibile, poi ho passato ad un mio amico il programma con la dll che ho creato. Questo mio amico non ha vb6 installato. Quando fa partire il programma sembra andare tutto bene ma quando dovrebbe usare l'oggetto che ho creato da errore dicendo:
Run time error 429
ActiveX component can't create object

Eppure sul mio pc funziona bene, cosa c'è che non va sul suo? Gli ho anche registrato l'ocx "mswinsck.ocx"
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2007, 22:41   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
up

Non è che questo ocx va registrato in modo differente?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2007, 19:17   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Cercando con google ho trovato questo:
http://www.vbip.com/forum/topic.asp?id=2984
penso di essere vicino alla soluzione qualcuno può dargli un'occhiata? Ho provato a fare come dice il link in fondo ma mi da sempre lo stesso errore, ho alcuni dubbi:
1- quale codice di licenza devo prendere? Il mio? Se sì allora devo includere nel pacchetto anche il mio winsock? Oppure devo runtime prendere il codice di licenza dell'ocx che c'è sulla macchina e usare quello?
2- Siamo sicuri che bisogna fare tutto sto casino solo x usare la winsock come riferimento? Come componente infatti non c'è nessun problema...
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 05-03-2007, 00:18   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
cosa c'è che non va sul suo? Gli ho anche registrato l'ocx "mswinsck.ocx"
Controlla le dipendenze dell'eseguibile e della dll con dependency walker... Solitamente c'è anche bisogno di installare il runtime VB6...
http://www.microsoft.com/downloads/d...DisplayLang=it
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 20:55   #7
Tabagismo
Member
 
L'Avatar di Tabagismo
 
Iscritto dal: Jan 2006
Messaggi: 201
Quote:
Originariamente inviato da cionci Guarda i messaggi
Controlla le dipendenze dell'eseguibile e della dll con dependency walker... Solitamente c'è anche bisogno di installare il runtime VB6...
http://www.microsoft.com/downloads/d...DisplayLang=it
Il runtime è installato, il pc è mio, da cosa può dipendere?
E' un problema del winsock o il problema sta nel mio pc

Grazie
Tabagismo è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 21:31   #8
BountyKiller
Utente sospeso
 
Iscritto dal: Oct 2002
Messaggi: 2156
doppio nick?
__________________
sign editata dallo staff
BountyKiller è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 21:40   #9
Tabagismo
Member
 
L'Avatar di Tabagismo
 
Iscritto dal: Jan 2006
Messaggi: 201
Quote:
Originariamente inviato da BountyKiller Guarda i messaggi
doppio nick?
No, sono io l'amico di wingman al quale ha passato il programma
Tabagismo è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2007, 23:04   #10
BountyKiller
Utente sospeso
 
Iscritto dal: Oct 2002
Messaggi: 2156
lol
__________________
sign editata dallo staff
BountyKiller è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2007, 13:52   #11
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Quote:
Originariamente inviato da cionci Guarda i messaggi
Controlla le dipendenze dell'eseguibile e della dll con dependency walker... Solitamente c'è anche bisogno di installare il runtime VB6...
http://www.microsoft.com/downloads/d...DisplayLang=it
Ho provato niente da fare.. Hai provato a guardare il link che ho messo io? Cmq per il momento vorrà dire che non scriverò dll con la winsock.. Mi piacerebbe xò sapere quale oscuro mistero avvolge questo misterioso componente..

PS: cos'è sta roba? -->
wingman87 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Quasi la metà degli smartphone at...
DDR5 a 16 dollari al gigabyte: Framework...
Meno di 3kg per 'diventare' bionici: l'u...
Al regalo di San Valentino ci pensa HUAW...
Intel multata in India: 30 milioni di do...
Beast of Reincarnation ha una data di us...
Provati Reno15 e Reno15 FS: analisi comp...
L'Europa sfida la Cina sul litio: in Fin...
Sono 32, di cui 6 nuove, le offerte Amaz...
Rinnovo dei coupon Amazon nascosti: ecco...
Corsair aggiorna la confezione delle RAM...
Ecco tutti i robot aspirapolvere in offe...
Tachyum: dal processore universale alle ...
L'eVTOL tedesco per missioni mediche e m...
Zscaler Threat Report 2026: l'adozione d...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:17.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v