Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-02-2007, 21:43   #1
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2791
[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, 22:01   #2
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2791
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, 12:10   #3
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2791
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, 21:41   #4
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2791
up

Non è che questo ocx va registrato in modo differente?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 04-03-2007, 18:17   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2791
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 04-03-2007, 23: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, 19: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, 20: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, 20: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, 22: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, 12:52   #11
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2791
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


L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Dopo gli unicorni, arrivano i "soon...
Europei sempre più diffidenti ver...
L'acquisto di Steam Machine è un ...
Lenovo Prime Day: i 6 migliori sconti (a...
CATL non riesce a superare la fase proto...
Mythos, il caso si complica: causa contr...
Il pazzesco nuovo record di Xiaomi YU7 G...
OneXPlayer 3: un PC gaming in formato Ni...
Climate.us riporta online i 15 anni di C...
Hisense da 58 pollici sotto i 300€ fa tr...
Windows 11 26H2: cosa cambia e chi resta...
SpaceX ha lanciato la sua prima capsula ...
Il prezzo medio di vendita degli smartph...
Prime Day robot tagliaerba: MAMMOTION, D...
Recensione Google Home Speaker: Gemini s...
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: 19:32.


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