
dedalux (Normal User)
Pro
    
Messaggi: 155
Iscritto: 14/02/2009
|
Salve a tutti!
Avrei un nuovo quesito
il mio programma utilizza una dll che importo scrivendo
Codice sorgente - presumibilmente C# / VB.NET |
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!
|
|

Jeremy (Normal User)
Pro
    
Messaggi: 134
Iscritto: 08/02/2009
|
Ultima modifica effettuata da Jeremy il 27/06/2009 alle 18:52 |
|

dedalux (Normal User)
Pro
    
Messaggi: 155
Iscritto: 14/02/2009
|
Ora guardo, grazie, ma perche incomprensibile?
Ultima modifica effettuata da dedalux il 27/06/2009 alle 19:04 |
|

Jeremy (Normal User)
Pro
    
Messaggi: 134
Iscritto: 08/02/2009
|
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.
Ciao. |
|

dedalux (Normal User)
Pro
    
Messaggi: 155
Iscritto: 14/02/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 |
|

Jeremy (Normal User)
Pro
    
Messaggi: 134
Iscritto: 08/02/2009
|
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ù.
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. |
|

dedalux (Normal User)
Pro
    
Messaggi: 155
Iscritto: 14/02/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 |
Imports Mia.dll Private Sub DLL_Sub(ByVal sender As Object, ByVal e _ As MiaDLL.Evento) Handles EventoDLL.Evento 'Fa qualcosa End Sub
|
Usando una reflection come dovrei fare?
|
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
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 |
Friend Function ScanLibrary(ByVal DllPath As String) As TPlugin.TPlugin Dim Asm As Assembly = Assembly.LoadFrom(DllPath) Dim Result As TPlugin.TPlugin = Nothing For Each T As Type In Asm.GetTypes If T.BaseType Is GetType(TPlugin.TPlugin) Then Dim TypeName As String = T.FullName Result = Asm.CreateInstance(TypeName) Result.InitData() End If Next Return Result End Function
|
|
|

Jeremy (Normal User)
Pro
    
Messaggi: 134
Iscritto: 08/02/2009
|
Ultima modifica effettuata da Jeremy il 28/06/2009 alle 18:57 |
|