Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
[C#]Dll e COM object
martedì 11 luglio 2006 - 12.16
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mar 11 lug 2006 - 12:16
Volevo qualche dritta su dll e com object, esiste un qualche sito che spieghi bene cosa sono, come si creano e come vengono usate??
Io ho una mia applicazione MyProject06 formata da un form.cs e da altre classi.
Ora dovrei creare una dll per poter usare il mio progetto in un'altra applicazione senza dover riscrivere tutto il codice, ma non so proprio come muovermi.
Se qualcuno mi sa dare qualche dritta gli sarei veramente grata!!!!
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mar 11 lug 2006 - 12:34
Se l'altro progetto dove vuoi riutilizzare le tue classi è anch'esso su .net non devi far altro che generare un progetto dll a partire dalle classi da esportare e poi inserirne il riferimento sul nuovo progetto (più facile a farsi che a dirsi).
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mar 11 lug 2006 - 12:48
>Se l'altro progetto dove vuoi riutilizzare le tue classi è anch'esso
>su .net non devi far altro che generare un progetto dll a partire
>dalle classi da esportare e poi inserirne il riferimento sul
>nuovo progetto (più facile a farsi che a dirsi).
>
Devo prendere il mio progetto e compilarlo come DLL giusto?
Così nel mio nuovo progetto aggiungo nei riferimenti il file .DLL appena creato e lo richiamo all'interno del mio nuovo progetto.
Andy
Profilo
| Senior Member
487
messaggi | Data Invio:
mar 11 lug 2006 - 13:06
Proprio così...apri un nuovo progetto come libreria di classi, lo compili (ovviamente al posto dell'eseguibile genera la Dll), e poi nel tuo progetto dove ti serve la libreria la includi nelle referenze..
Ricordati che dove ci sarà il tuo eseguibile dovrà esserci anche la libreria associata..
Ciao.
Andy
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mar 11 lug 2006 - 13:14
>Proprio così...apri un nuovo progetto come libreria di classi,
>lo compili (ovviamente al posto dell'eseguibile genera la Dll),
>e poi nel tuo progetto dove ti serve la libreria la includi nelle
>referenze..
>Ricordati che dove ci sarà il tuo eseguibile dovrà esserci anche
>la libreria associata..
>
>Ciao.
>Andy
Scusa, ma ho un po' di confusione:
qui c'è qualcosa su come generare la dll:
http://msdn.microsoft.com/library/ita/default.asp?url=/library/ITA/csref/html/vcwlkLibrariesTutorial.asp
ma non mi è chiarissimo.
Poi non ho capito bene quello che mi hai scritto.
Perchè devo aprire un nuovo progetto come libreria di classi? non devo generare la dll dal mio progetto?
Dove lo devo scrivere il comando per generare? Nel prompt dei comandi?
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mar 11 lug 2006 - 13:46
Mettiamo che nel tuo progetto 1 abbia degli elementi che vuoi condividere con altri progetti, tu prendi, aggiungi un nuovo progetto alla soluzione di tipo libreria, importi su questo nuovo progetto quello che vuoi condividere che compilerai a parte.
Il riferimento a questa libreria lo dovrai inserire tra i riferimenti dei progetti dove vuoi utilizzare quello che hai condiviso.
Andy
Profilo
| Senior Member
487
messaggi | Data Invio:
mar 11 lug 2006 - 13:54
Allora, per non complicarti la vita:
1) Crea un nuovo progetto a parte, (anche nella stessa soluzione)come output setti liberia di classi;
2) Nel nuovo progetto metti il codice che verrà incluso nella libreria(ovviamente quello che vuoi che si veda all'esterno della libreria lo dovrai dichiarare come Public);
3) Nessun comando particolare va usato, semplicemente quando generi la soluzione(esattamente come fai per i progetti dove generai un eseguibile ossia da Menu Genera->Genera soluzione), nella cartella Bin ti crea la DLL;
3) La Dll creata infine la utilizzi nel tuo progetto aggiungendola come riferimento.
Se tutto è corretto instanziando la tua Dll nnel tuo progetto dovrebbe farti utilizzare tutto quello che tu hai dichiarato public nella creazione della DLL.
Andy
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mar 11 lug 2006 - 14:06
>Mettiamo che nel tuo progetto 1 abbia degli elementi che vuoi
>condividere con altri progetti, tu prendi, aggiungi un nuovo
>progetto alla soluzione di tipo libreria, importi su questo nuovo
>progetto quello che vuoi condividere che compilerai a parte.
>Il riferimento a questa libreria lo dovrai inserire tra i riferimenti
>dei progetti dove vuoi utilizzare quello che hai condiviso.
>
C'è da qualche parte una guida su come fare a importare i metodi che voglio poter condividere, perchè non so come fare. Mi hanno detto che c'è pieno di siti, ma io non riesco a trovarli.
Cos'è il GUID e mi può servire?
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mar 11 lug 2006 - 14:18
Non credo che esista un manuale che descriva le operazioni necessarie a trasformare / generare una libreria se non il normale manuale.
Personalmente mi è capitato di andare in un progetto winexe e cambiare il tipo di output in dll.
Per una trasformazione "normale" segui i passi:
- crea un nuovo progetto libreria
- aggiungi i sorgenti delle classi
- compila
Ovviamente devi impostare l'area di visibilità di classi e metodi in modo tale che ci si possa accedere.
Tutte cose che trovi in un normale manuale come quello di Balena su vb2005.
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mar 11 lug 2006 - 14:29
Se io voglio importare tutti i metodi delle mie classi tranne quelli del form.cs devo riscrivere tutto?
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mar 11 lug 2006 - 14:33
Devo usare le funzioni Dllregister e DllUnregister.
Cosa servono?
Andy
Profilo
| Senior Member
487
messaggi | Data Invio:
mar 11 lug 2006 - 14:40
>Se io voglio importare tutti i metodi delle mie classi tranne
>quelli del form.cs devo riscrivere tutto?
esatto metti nel progetto liberia tutti i metodi che vuoi vedere poi nella DLL dichiarandoli come public.
Andy
Andy
Profilo
| Senior Member
487
messaggi | Data Invio:
mar 11 lug 2006 - 14:42
>Devo usare le funzioni Dllregister e DllUnregister.
>Cosa servono?
>
Scusa perchè dovresti utilizzarli? Una volta che il tuo eseguibile ha referenziato nel progetto la DLL non devi più fare nulla.
Andy
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mar 11 lug 2006 - 14:46
Basta che incollo tutto il codice che voglio importare nella class library?
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mar 11 lug 2006 - 14:48
Ma queste funzioni le dovrei usare nella class library. Non mi chiedere perchè, visto che mi è stato solo detto di usarle nella class library.
Cosa servono?
Andy
Profilo
| Senior Member
487
messaggi | Data Invio:
mar 11 lug 2006 - 16:13
>Basta che incollo tutto il codice che voglio importare nella
>class library?
Esatto. lasciando private quello che ti serve solo all'interno della classe e public quelli che poi saranno i metodi della tua classe visibili all'esterno della DLL.
Non ti serve altro, fidati.
Compili il progetto della DLL e la includi nelle refences del progetto in cui vuoi utilizzare la tua Dll, nient'altro.
Andy
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mar 11 lug 2006 - 16:18
Mi hanno detto di dare un occhio a questi due metodi che dovrei mettere nella mia class library
http://www.codeproject.com/cs/miscctrl/exposingdotnetcontrols.asp
ma non ci capisco molto. Cosa servono??
Andy
Profilo
| Senior Member
487
messaggi | Data Invio:
mar 11 lug 2006 - 16:46
Beh come dice il titolo dell'articolo lì si ti dimostra come creare un ActiveX da una form..ma non credo c'entri nulla con quello che vuoi fare tu...
Qui stiamo parlando di Winform e creazione di una DLL, quella dell'articolo è un'altro argomento..
Andy
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mer 12 lug 2006 - 09:21
>Beh come dice il titolo dell'articolo lì si ti dimostra come
>creare un ActiveX da una form..ma non credo c'entri nulla con
>quello che vuoi fare tu...
>Qui stiamo parlando di Winform e creazione di una DLL, quella
>dell'articolo è un'altro argomento..
>Andy
Cos'è un ActiveX e il COM Interop?
Andy
Profilo
| Senior Member
487
messaggi | Data Invio:
mer 12 lug 2006 - 10:13
I controlli ActiveX sono componenti software riutilizzabili che incorporano la tecnologia ActiveX, allo scopo di ottenere pagine web interattive e multimediali difficilmente realizzabili con i vecchi script.. Questi componenti consentono di aggiungere funzionalità speciali, quali animazioni o menu a comparsa, alle pagine Web, ai programmi e agli strumenti di sviluppo del software.
Andy
kiara83
Profilo
| Junior Member
90
messaggi | Data Invio:
mer 12 lug 2006 - 10:27
Devo creare un COM object che sia accessibile dall'esterno e un'interfaccia in cui riporto i metodi che voglio siano visibili all'esterno, solo che non mi è molto chiaro come devo fare.
Quelle due funzioni che ho postato poco sopra servono per registrare il mio componente.
Visto che ho una confusione pazzesca, e non so manco da dove cominciare a chiedere vi pregherei, se qualcuno sa di un sito (possibilmente in italiano, se no è uguale) dove potrebbe essere spiegato bene questa cosa del COM object.
Grazie tante
Torna su
Stanze Forum
Elenco Threads
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 !