Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    11

    Problemi compatibilità in Vista (vb6)

    salve
    é la prima volta che scrivo in questo forum.
    Sono un programmatore (dilettante) in vb6.
    Fino adesso i miei programmi hanno sempre funzionato su tutti i windows
    Ho appena acquistato un nuovo portatile, con Vista preinstallato.

    Ho installato uno dei miei programmi. (uso setupfactory)
    Al momento di lanciarlo ho ricevuto pero'

    Run -time error 339'
    Component 'COMDLG32.OCX or one of its dependencies not correctly registered: a file is missing or invalid.

    Subito ho registrato il componente con
    regsvr32 C:\WINDOWS\SYSTEM32\comdlg32.ocx

    Il componente é stato ben registrato ma ho ricevuto poi il seguente errore:
    DIIRegisterServer non è riuscita. Codice di errore 0x8002801c

    Cosa vuol dire?
    C'é qualcuno a cui é successo lo stesso?
    Come risolvere?

    grazie

    melandro

  2. #2
    Ciao !

    Se hai ricevuto il seguente errore:
    DIIRegisterServer non è riuscita. Codice di errore 0x8002801c
    significa che il componente non è stato registrato !

    L'errore è causato dalla mancanza di uno dei files delle dipendenze di 'COMDLG32.OCX'.
    Run -time error 339'
    Component 'COMDLG32.OCX or one of its dependencies not correctly registered: a file is missing or invalid.

    Probabilmente il pacchetto di installazione non è completo.
    Se il setup è sempre andato a buon fine su tutti gli altri Windows è perchè su questi
    sistemi erano già preinstallati (magari da altre applicazioni) tutti i files da cui 'COMDLG32.OCX' dipende.

    Ti consiglio di usare il Dependency Viewer di Visual Studio per verificare le dipendenze
    di 'COMDLG32.OCX'. Lanciandolo su Vista (non dovresti avere problemi a farlo girare su questo O.S.) dovresti capire facilmente quali sono i files mancanti.

    Ciao
    Simo

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    11
    salve

    ho detto nel mio topic che inzialmente il componente 'COMDLG32.OCX' non era stato correttamente registrato. Ok.


    Ma poi ho anche detto che, usando regsvr32 C:\WINDOWS\SYSTEM32\comdlg32.ocx,
    il componente in questione é stato registrato con successo (ho avuto questo messaggio)

    Poi ho riprovato a lanciare il programma ma ho avuto quel nuovo messaggio
    (DIIRegisterServer non è riuscita. Codice di errore 0x8002801c)

    Quindi il secondo messaggio di errore riguarda (secondo me) un nuovo problema, in quanto il problema del comdlg32.ocx, non é stato piu nominato.

    Posso naturalmente sbagliare.
    Io dico solo quelo che ha detto il computer dopo la registrazione , cioé che era andato tutto bene.

    Io posso naturalmente usare il dependency viewer e lo faro' anche;

    melandro

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    11
    Ho provato ad usare il DEpendencyViewer consigliato.
    Funziona bene ma una cosa non l'ho capita:

    Supponiamo che uso DependencyViewer sul file Prova.exe
    Quindi mi vengono presentati dei componenti (ocx, dll..)che sarebbero
    dipendenti e necessari a questo Prova.exe.

    Volevo chiedere:
    la lista da Dependency Viewer presentata descrive i componenti necessari al dato programma o elenca quelli
    mancanti nel sistema per lo stesso programma ?

    grazie

    melandro

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    11
    Ho provato a fare un file di installazione tramite il wizard di vb6
    stesso, cioé il Package and Deployment wizard, ebbene....

    FUNZIONA alla perfezione su Vista !

    Nesun errore. Si vede che con il Package le dipendenze vengono
    meglio registrate.

    IO lo userei sempre, ma non ho visto una opzione per aggiungere
    cartelle al setup.
    E molti miei programmi si servono di cartelle specifiche (grafici, dati...)
    che devono essere posizionate e lette nella cartella di installazione programma.

    Esiste forse un metodo/trucco per questo?

    grazie
    in questo modo sarebbe risolto il problema di non compatibilità in Vista

    usa qualcuno tra voi il Package di vb6?

    grazie

    melandro

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao melandro,
    da tempo non uso più l' "Installer di vb6" oramai obsoleto, ciò nonostante continuo ad utilizzare un metodo per copiare nella cartella di destinazione del prog. i files di esempio, immagini ed altri files che ritengo necessari.
    Il metodo è semplice, basta pensarci un attimo ...
    In sostanza quando compili il CD per l'installazione in una cartella a sé stante (magari la puoi chiamare "SupportFT") avrai cura di inserire i files che devi successivamente copiare nella Dir del programma. Quando avvii per la prima volta il prog. verrà eseguita una ricerca per controllare se la cartella contenente i predetti files è presente, se non c'é verrà effettuata una copia, ed il problema è risolto ...
    codice:
    ' .....
    ' Controlla che la cartella DATIft esista, altrimenti al primo avvio la crea:
        Set FSO = New FileSystemObject
            If (FSO.FolderExists(App.Path & "\" & "DATIft")) = False Then
                
                ' Cerca la lettera del CD_ROM o nell'Unità removibile attivo:
                For Each Drv In FSO.Drives
                    ' CDRom 4 o PenDrive 1:
                    If Drv.DriveType = 4 And Drv.IsReady Or _
                        Drv.DriveType = 1 And Drv.IsReady Then
                        sPath = Drv.DriveLetter & ":\"
                        Exit For
                    End If
                Next
                SourceFile = sPath & "SupportFT\DATIft"
                DestinFile = App.Path & "\" & "DATIft"
                FSO.CopyFolder SourceFile, (App.Path & "\" & "DATIft")
                MsgBox "La cartella DATIft e le relative sottocartelle, sono state" & vbCr _
                & "copiate con successo in  " & DestinFile & ".", vbInformation, "....."
            End If
    ErrHandlerDvr:
                If Err.Number <> 0 Then
                    MsgBox "Errore durante il tentativo di copia della cartella DATIft: " & vbCr & "Numero errore: " & Err.Number & vbCr & "Descrizione: " & Err.Description, vbCritical, "...."
                    Err.Clear
                End If
    Come vedi per fare l'operazione devi utilizzare FileSystemObject, da attivare nei riferimenti "Microsoft Scripting Runtime".
    LM

  7. #7
    Salve a tutti
    Io ho risolto il problema in questo modo:

    Dopo aver installato su win Vista il software realizzato con vb6
    sono entrato nella cartella di installazione del software, ho cliccato con il tasto destro del mouse sul file exe e ho scelto la voce proprietà quindi la scheda compatibilità, ho messo il segno di spunta sul "livello di privilegio"
    "Esegui questo programma come amministratore" quindi OK

    a questo punto ho eseguito il software e tutto ha funzionato correttamente.

    Spero possa esservi d'aiuto

    Ciao

  8. #8
    Originariamente inviato da LMondi
    Ciao melandro,
    da tempo non uso più l' "Installer di vb6" oramai obsoleto, ciò nonostante continuo ad utilizzare un metodo per copiare nella cartella di destinazione del prog. i files di esempio, immagini ed altri files che ritengo necessari. ..........
    che installer usi adesso, considerando anche vista ?
    Software Gestionale KeyStore
    www.atsoft.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.