Problema con DLL

martedì 20 maggio 2008 - 10.33

cable Profilo | Junior Member

Ciao a tutti,
ho un problema con un'applicazione che ho fatto con VB2005 e che deve utilizzare alcune DLL.
Con il VB6 usavo il Visual Studio Installer e m'ha sempre trovato automaticamente le dipendenze(le varie DLL che il programma utilizzava erano messe nella cartella "Windows System Folder").

Ora con il VB2005 non mi sono preoccupato di includere DLL però alla prima applicazione mi sono accorto che l'utente veniva buttato fuori dal programma perchè non c'erano queste DLL; per cercare di ovviare al problema li ho inserite manualmente in "Cartella applicazione" facendo ->tasto destro ->aggiungi file (in questo modo oltre che nella cartella che crea per il programma dovrebbe mettere le DLL anche nella cartella system32, giusto??)

E' sufficiente fare così o bisogna metterle da qualche altra parte oppure settare qualcosa durante la creazione del pacchetto d'installazione o cos'altro?

Grazie in anticipo.
Mauro

Brainkiller Profilo | Guru

>questo modo oltre che nella cartella che crea per il programma
>dovrebbe mettere le DLL anche nella cartella system32, giusto??)

Giusto.

>E' sufficiente fare così o bisogna metterle da qualche altra
>parte oppure settare qualcosa durante la creazione del pacchetto
>d'installazione o cos'altro?

Così va bene. Diciamo che una delle pratiche più usate è di andare a mettere tutte le DLL necessarie al Software nella cartella in cui c'è l'eseguibile.

Se parliamo di DLL .NET va bene questa tecnica, se parliamo di DLL old-style tipo COM di solito è necessario registrarle nel registry usando il regsvr32.exe

Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

cable Profilo | Junior Member

Ok David, grazie.
Mi faresti un esempio di come si fa a registrarew un DLL non .Net?

Grazie

Brainkiller Profilo | Guru

>Ok David, grazie.
>Mi faresti un esempio di come si fa a registrarew un DLL non
>.Net?

E' semplice in genere si copia la DLL/OCX nella System32 e poi si usare regsvr32.exe dalla command line (cmd.exe) in questo modo:

regsvr32.exe libreria.dll

o

regsvr32.exe controllo.ocx

e per de-registrarlo si mette lo switch /u.
Una volta completata la registrazione ti uscirà un messaggio di successo. Se non esce significa che la DLL/OCX non è del tipo che può essere registrata tramite regsvr32 ossia non è nè un OCX nè una DLL ActiveX/COM.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

cable Profilo | Junior Member

Perfetto, grazie 1000 anche stavolta.

Ciao ciao
Mauro
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5