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 - [VB.NET] Come lavorare con una dll?
Forum - C# / VB.NET - [VB.NET] Come lavorare con una dll?

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 18:32
Sabato, 27/06/2009
Salve a tutti!
Avrei un nuovo quesito
il mio programma utilizza una dll che importo scrivendo
Codice sorgente - presumibilmente C# / VB.NET

  1. Imports Mia.dll


all'inizio del codice prima della classe del form iniziale

ma vorrei fare in modo che la dll sia incorporata nell'eseguibile:
ho pensato di metterla come risorsa ed estrarla in una cartella all'avvio per fargliela utilizzare.
Fino ad estrarla ci sono riuscito, ma il problema è che nn mi compila il programma perche "Imports Mia.dll" non fa riferimento a nulla!
e ovviamente se lo tolgo vanno in pappa le subs che utilizzano le funzioni contenute in essa...
Come dovrei fare??
Grazie mille!


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote
Avatar
Jeremy (Normal User)
Pro


Messaggi: 134
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 18:49
Sabato, 27/06/2009
Ciao.
Non sto a giudicare la tua scelta, in quanto, la ritengo quanto meno incomprensibile....ad ogni modo devi ricorrere all'uso delle Reflection.
Qui:
http://msdn.microsoft.com/it-it/library/system.reflection. ...
http://msdn.microsoft.com/it-it/library/system.reflection. ...
http://msdn.microsoft.com/it-it/library/cxz4wk15.aspx
http://msdn.microsoft.com/it-it/library/f7ykdhsy(VS.95).aspx
dovresti trovare tutto l'occorrente.

Facci sapere...
Ciao

Ultima modifica effettuata da Jeremy il 27/06/2009 alle 18:52
PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 18:58
Sabato, 27/06/2009
Ora guardo, grazie, ma perche incomprensibile?

Ultima modifica effettuata da dedalux il 27/06/2009 alle 19:04


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote
Avatar
Jeremy (Normal User)
Pro


Messaggi: 134
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 19:29
Sabato, 27/06/2009
Testo quotato

Postato originariamente da dedalux:

Ora guardo, grazie, ma perche incomprensibile?



Tu dimmi il motivo per il quale ne senti la necessità .... ed io ti spiego perchè lo ritengo incomprensibile. :heehee:

Ciao.

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 19:45
Sabato, 27/06/2009
Perche ogni votla che do il programma a qualcuno devo passargli anche la dll nell'archivio, poi magari quello va ad eliminarla e poi me la viene a chiedere di nuovo...
Se il programma potesse da solo estrarsela ed usarla sarebbe piu semplice

quello che in pratica vorrei fare è importare la dll dopo averla estratta invece la va subito a carcare e si blocca...

Ultima modifica effettuata da dedalux il 27/06/2009 alle 19:48


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote
Avatar
Jeremy (Normal User)
Pro


Messaggi: 134
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 13:42
Domenica, 28/06/2009
Testo quotato

Postato originariamente da dedalux:

Perche ogni votla che do il programma a qualcuno devo passargli anche la dll nell'archivio, poi magari quello va ad eliminarla e poi me la viene a chiedere di nuovo...
Se il programma potesse da solo estrarsela ed usarla sarebbe piu semplice

quello che in pratica vorrei fare è importare la dll dopo averla estratta invece la va subito a carcare e si blocca...



Ciao ...
A parte il fatto che se un "Utonto" cancella una libreria parte del programma ..... si merita che il tuo programma non funzioni più. :rofl:

A parte il fatto che ricorrere all'utilizzo delle Reflection non fa comunque male a nessuno ... anzi, probabilmente impari qualcosa di utile da sfruttare in altre occasioni.


Di solito, se ne fa uso quando sia ha la necessita di caricare un assembly, piuttosto che un'altro in funzione di una condizione.

Ad ogni modo, pensavo mi rispondessi che non volevi rendere pubblica il tuo assembly. :-|

Ciao.

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 15:31
Domenica, 28/06/2009
Si pero io npn è che ci abbia capito molto della guida di MSDN.....
Potresti farmi un piccolo esempio?
io usavo
Codice sorgente - presumibilmente VB.NET

  1. Imports Mia.dll
  2. Private Sub DLL_Sub(ByVal sender As Object, ByVal e _
  3.                                 As MiaDLL.Evento) Handles EventoDLL.Evento
  4. 'Fa qualcosa
  5. End Sub



Usando una reflection come dovrei fare? :-?


«La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.»

Isaac Asimov
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:44
Domenica, 28/06/2009
Non è più furbo mettere il codice direttamente nell'applicazione?
Ci sono diversi capitoli dedicati alla reflection anche sul mio sito. Questo è un pezzo di codice per la gestione dei plugin di un mio programma:
Codice sorgente - presumibilmente VB.NET

  1. Friend Function ScanLibrary(ByVal DllPath As String) As TPlugin.TPlugin
  2.         Dim Asm As Assembly = Assembly.LoadFrom(DllPath)
  3.         Dim Result As TPlugin.TPlugin = Nothing
  4.  
  5.         For Each T As Type In Asm.GetTypes
  6.             If T.BaseType Is GetType(TPlugin.TPlugin) Then
  7.                 Dim TypeName As String = T.FullName
  8.                 Result = Asm.CreateInstance(TypeName)
  9.                 Result.InitData()
  10.             End If
  11.         Next
  12.  
  13.         Return Result
  14.     End Function



"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
Jeremy (Normal User)
Pro


Messaggi: 134
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 18:56
Domenica, 28/06/2009
Con l'uso delle Reflection, la gestione degli eventi, non puoi farla come la faresti in un ambiente tipizzato.
Ad ogni modo, il capitolo relativo alla gestione di eventi dovrebbe essere questo:
http://msdn.microsoft.com/it-it/library/ms228976(VS.95).aspx


Facci sapere...
Ciao

Ultima modifica effettuata da Jeremy il 28/06/2009 alle 18:57
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo