Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - dll creata con vb.net
Forum - C# / VB.NET - dll creata con vb.net

Avatar
Fabiodoku (Normal User)
Newbie


Messaggi: 3
Iscritto: 15/06/2010

Segnala al moderatore
Postato alle 17:47
Martedì, 15/06/2010
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 il 15/06/2010 alle 17:48
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 18:14
Martedì, 15/06/2010

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.


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Fabiodoku (Normal User)
Newbie


Messaggi: 3
Iscritto: 15/06/2010

Segnala al moderatore
Postato alle 18:32
Martedì, 15/06/2010
Testo quotato

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 il 15/06/2010 alle 18:32
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 18:37
Martedì, 15/06/2010

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!


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Fabiodoku (Normal User)
Newbie


Messaggi: 3
Iscritto: 15/06/2010

Segnala al moderatore
Postato alle 18:46
Martedì, 15/06/2010
Testo quotato

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:

Testo quotato


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 il 15/06/2010 alle 19:23
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2764
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 21:15
Martedì, 15/06/2010
Testo quotato

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 http://msdn.microsoft.com/it-it/library/ex0ss12c%28VS.80%2 ...


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Ale96 (Member)
Pro


Messaggi: 132
Iscritto: 06/04/2010

Segnala al moderatore
Postato alle 19:31
Mercoledì, 11/08/2010
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:
Codice sorgente - presumibilmente C# / VB.NET

  1. Imports [nome dll]



Qualunque bug sufficientemente avanzato è indistinguibile da una caratteristica del software.

Ci sono 10 tipi di persone al mondo: chi capisce il codice binario e chi no.

I veri utenti non usano mai la funzione “Help”.
(tutti anonimi)
PM Quote