Oppure

Loading
15/06/10 15:47
Fabiodoku
Buon pomeriggio a tutti, questa è la prima volta che scrivo qui, quindi scusatemi per eventuali errori..

Ho creato una dll con VB .NET 2008, che contiene una classe "Class1", che a sua volta contiene una funzione "funzione1".

Poi ho copiato questa dll nella cartella di una mia applicazione: "c:\Programmi\NomeApplicazione\".

Ora dovrei utilizzare questa dll in altre mie applicazioni che quindi stanno nelle cartelle "c:\Programmi\nome".

Ho cercato in internet e ho trovato che devo registrare la dll nel sistema e che devo farlo con regsvr32, passandogli il percorso della dll..

Ho provato ad effettuare la registrazione della dll, ma mi dice che ha caricato il modulo, ma non ha trovato il punto di ingresso DllRegisterServer..

come posso risolvere?
Ultima modifica effettuata da Fabiodoku 15/06/10 15:48
aaa
15/06/10 16:14
HeDo

benvenuto sul forum :)

il processo di registrazione delle dll era parte della tecnologia COM, in VB.NET le dll si chiamano Assembly e non vanno registrati con regsrv32 :)

gli assembly vengono registrati nella GAC (Global Assembly Cache) in modo da renderli disponibili al sistema, ma se vuoi caricare un assembly .NET in una tua applicazione semplicemente nei riferimenti aggiungi quella dll :)

se invece vuoi caricare in maniera dinamica un assembly a runtime e chiamare/istanziare della classi devi usare la reflection.
aaa
15/06/10 16:32
Fabiodoku
Postato originariamente da HeDo:


benvenuto sul forum :)

il processo di registrazione delle dll era parte della tecnologia COM, in VB.NET le dll si chiamano Assembly e non vanno registrati con regsrv32 :)

gli assembly vengono registrati nella GAC (Global Assembly Cache) in modo da renderli disponibili al sistema, ma se vuoi caricare un assembly .NET in una tua applicazione semplicemente nei riferimenti aggiungi quella dll :)

se invece vuoi caricare in maniera dinamica un assembly a runtime e chiamare/istanziare della classi devi usare la reflection.


aaah ecco, così è molto più chiaro :) grazie :)
avevo cercato un po' su diversi forum, ma più cercavo meno capivo xD

una cosuccia.. ti spiacerebbe farmi un esempio di come caricare una dll con la reflection?
non l'ho mai usata (oserei dire mai sentita nominare :rofl: ) quindi non ho idea di come fare..
Ultima modifica effettuata da Fabiodoku 15/06/10 16:32
aaa
15/06/10 16:37
HeDo

l'esempio non servirebbe a nulla se non hai la più pallida idea di cosa sia la reflection, ti consiglio di leggere un buon manuale di .NET :)

ordina da amazon o compra i manuali della wrox, sono fatti molto bene!
aaa
15/06/10 16:46
Fabiodoku
Postato originariamente da HeDo:


l'esempio non servirebbe a nulla se non hai la più pallida idea di cosa sia la reflection, ti consiglio di leggere un buon manuale di .NET :)

ordina da amazon o compra i manuali della wrox, sono fatti molto bene!


eheh già, immaginavo che non sarebbe stato facile :)

vabè dai, mi metto al lavoro, grazie mille! :)

EDIT:

ma se vuoi caricare un assembly .NET in una tua applicazione semplicemente nei riferimenti aggiungi quella dll


ripensandoci un attimo.. in effetti è questo che voglio fare io..
mi era passato di mente perchè anche quello mi da dei problemi..
ho provato ad aggiungere nei riferimenti la mia dll che se ne sta nella cartella "c:\programmi\applicazione1" all'applicazione che andrà nella cartella "c:\programmi\applicazione2", quindi ho impostato "copia localmente" su false

me la fa aggiungere e mi fa scrivere normalmente il codice..
il problema sorge quando eseguo..
perchè mi dice che non riesce a trovare il file della dll..

c'è un modo per risolvere?
Ultima modifica effettuata da Fabiodoku 15/06/10 17:23
aaa
15/06/10 19:15
HeDo
Postato originariamente da Fabiodoku:

ripensandoci un attimo.. in effetti è questo che voglio fare io..
mi era passato di mente perchè anche quello mi da dei problemi..
ho provato ad aggiungere nei riferimenti la mia dll che se ne sta nella cartella "c:\programmi\applicazione1" all'applicazione che andrà nella cartella "c:\programmi\applicazione2", quindi ho impostato "copia localmente" su false

me la fa aggiungere e mi fa scrivere normalmente il codice..
il problema sorge quando eseguo..
perchè mi dice che non riesce a trovare il file della dll..

c'è un modo per risolvere?


se la registri nella GAC non devi copiarla localmente perchè il sistema ne ha una copia, se non è registrata nella GAC devi fare copia localmente.

per gestire la gac guardati gacutil msdn.microsoft.com/it-it/library/…
aaa
11/08/10 17:31
Ale96
Semplice seleziona la voce Add a reference nel menù progetto, quindi seleziona la dll (clicca su Browse per sceglierla dal tuo computer) e infine all'inizio del codice del progetto Inserisci questo codice:
Imports [nome dll]
aaa