Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    11

    [VB6] Declare Function non trova la DLL su Windows 7

    Ciao,
    mi capita questa cosa su Win7:

    ho copiato una semplice DLL (vbunzip10.dll) in %SYSTEMROOT%\System32 e
    nel codice richiamo una funzione di tale libreria dichiarata attraverso la direttiva Declare.
    Fatto sta che in esecuzione mi ritorna l'errore:

    "Impossibile trovare il file: vbuzip10.dll"

    Stessa cosa se la copio nella cartella del progetto.

    PS. non è un problema di nome, in XP la DLL era in System32 e tutto funzionava.

    Idee?
    Daniele.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il fatto che nel messaggio ci sia scritto

    vbuzip10.dll

    e non

    vbunzip10.dll

    potrebbe essere una strada da seguire ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    11
    Ciao oregon,

    grazie per l'attenzione.
    Il problema non risiede nel nome del file (chiedo scusa..effettivamente ho sbagliato a scriverlo nel post ). La libreria si chiama proprio vbuzip10.dll
    Tanto è vero che se nella Declare gli inserisco il percorso completo funziona:

    Private Declare Function Wiz_SingleEntryUnzip Lib "D:\src\MyProject\vbuzip10.dll" ....

    Inoltre eseguo l'IDE di VB come amministratore (quindi non dovrei avere problemi ad accedere a %SYSTEMROOT%\System32, in teoria!)
    La cosa che non capisco è: perchè non funziona nemmeno se copio le DLL nella cartella del progetto (App.Path)??

    Tnx,
    Daniele.

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Perchè non mostri il codice che usi, per intero ovvero sia la dichiarazione completa della funzione e come la usi, se no noi come facciamo a capirci qualcosa?


  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    11
    Posso anche postarlo, ma il problema non è il codice (che funziona correttamente su XP da tempo) ma, secondo me, è il modo in cui VB ricerca le librerie nel sistema...

    Cmq il codice utilizzato è quello preso da VbAccelerator per la gestione degli archivi ZIP (senza modifiche):

    http://www.vbaccelerator.com/home/VB...ip/article.asp

    Ed in particolare i file:

    cUnzip.cls
    cZip.cls
    mUnzip.bas
    mZip.bas

    Anche provando a lanciare il progetto VBZip ottengo l'errore.

    Ciao.
    Daniele.

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non posso provare VBZip perchè mi da errore con la libreria "ssubtmr6.dll"
    Questo problema ormai accade da diverso tempo e con molti progetti di VBAccelerator sul mio Windows XP SP3 (col SP 2 era invece tutto ok).

    Quindi non ho modo di aiutarti.



  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ho provato a zippare con la

    vbzip11.dll

    e funziona ...

    Tu provi solo a fare l'unzip? Cosa hai modificato del codice?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    11
    Prima di tutto, grazie per il tempo che dedicate al problema.

    @Gibra
    Non posso provare VBZip perchè mi da errore con la libreria "ssubtmr6.dll" Questo problema ormai accade da diverso tempo e con molti progetti di VBAccelerator sul mio Windows XP SP3 (col SP 2 era invece tutto ok).
    Mmm..strano. Io uso molto codice derivato da VbAccelerator e non ho mai avuto problemi in XP SP3.
    Occhio che quell'ActiveX ha delle dipendenze...forse ha smesso di funzionare perchè ci sono dei problemi in tal senso.

    @oregon
    Ho provato a zippare con la
    vbzip11.dll
    e funziona ...
    Tu provi solo a fare l'unzip?
    Nell'attuale progetto uso solo la parte per la decompressione.
    Ma ho provato a lanciare l'eseguibile VBZip da loro fornito e anch'esso mi ritorna l'errore:
    "Impossibile trovare la libreria vbzip11.dll"

    Tu la DLL dove ce l'hai?

    Cosa hai modificato del codice?
    Uso solo le due classi con i rispettivi moduli senza alcuna modifica.

    Ragioniamo...
    Se indico il percorso completo della libreria nella "Declare", tutto funziona.
    Quindi il problema è dovuto alla ricerca della DLL all'interno del file system.
    Ora...:
    1. l'IDE di VB non è supportato in Win64....può centrare questo?
    2. Come sappiamo la ricerca di una libreria ha un suo ordine (http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx). Forse in un sistema a win64, non basta inserirla in System32 per far si che un applicativo win32 la trovi?

    Bye,
    Daniele

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da DBarzo
    @Gibra
    Mmm..strano. Io uso molto codice derivato da VbAccelerator e non ho mai avuto problemi in XP SP3.
    Purtroppo io sì.

    Originariamente inviato da DBarzo Occhio che quell'ActiveX ha delle dipendenze...forse ha smesso di funzionare perchè ci sono dei problemi in tal senso.
    No, la libreria SSubTimer6.dll non ha alcuna dipendenza esterna.

    Comunque:
    in VBZip ho sostituito la SSubTimer6.dll con il relativo progetto sorgente, e così SSubTimer6 ora funziona, per cui ho potuto fare le prove su Windows 7 Ultimate buil 7600 installato in una Virtual Machine di VMWare 7.0:

    prima ho copiato la vbuzip.dll nella cartella del progetto VBZip sorgente, poi lo spostata nella cartella C:\Windows\System32 (usando Esplora Risorse), ed in entrambi in casi il progetto ha funzionato senza alcun errore .


  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    11
    No, la libreria SSubTimer6.dll non ha alcuna dipendenza esterna.
    Azz...a memoria mi sembrava di si...forse altri dipendono da questa!

    Comunque:
    in VBZip ho sostituito la SSubTimer6.dll con il relativo progetto sorgente, e così SSubTimer6 ora funziona, per cui ho potuto fare le prove su Windows 7 Ultimate buil 7600 installato in una Virtual Machine di VMWare 7.0:

    prima ho copiato la vbuzip.dll nella cartella del progetto VBZip sorgente, poi lo spostata nella cartella C:\Windows\System32 (usando Esplora Risorse), ed in entrambi in casi il progetto ha funzionato senza alcun errore .
    Non so + che dire
    Il tuo Win7 è a 64 bit? Potrebbe anche non voler dire ma, nei due sistemi le cartelle differiscono leggermente (vedi, per es, Programmi e "Programmi x86") e magari....

    ciao!
    Daniele.

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.