aki Inserito: 12 novembre 2004 Segnala Inserito: 12 novembre 2004 Salve a tuttivolevo sapere come fare a realizzare delle dll che, nel caso in cui vengano modificate perche' vi aggiungo dei nuovi metodi, non necessitano di dover ricompilare tutti i programmi che già le usano e che non sono assolutamente interessati alla modifica.Spero di essere stato chiaro e di non aver fatto una domanda a cui già sono state date delle risposte; ho fatto una ricerca con google, ma senza nessun risultato, ho trovato solo degli articoli poco chiari su codeguru
Gianmario Pedrani Inserita: 12 novembre 2004 Segnala Inserita: 12 novembre 2004 Non ho ben capito se tu sia in grado oppure no di realizzare delle dll? Le dll sono dei file contenente delle funzioni o procedure che vengono lincate dinamicamente alle tue applicazioni, e sufficente che le funzioni che andrai ad inserire e modificare non, mantengano lo stesso nome, e le vecchie procedure, in piu' puoi aggiungerci dei nuovi metodi ,in modo che i vecchi programmi possano sempre fare quello che facevano proma, mentre quelli nuovi possono sfruttare le nuove funzioni da te implementate..... Per creare una dll credo che con google trovi vario materiale, io tanto tempo fa avevo trovato qualcosa....... ciaooooooo
Savino Inserita: 12 novembre 2004 Segnala Inserita: 12 novembre 2004 Salve aki,Nella MSDN Library de Visual Studio 6.0 troverai sufficente documentazione per quanto riguardal'uso delle DLL.Io non riesco a capire come puoi pretendere di andare avanti su questa strada, voglio dire assemblarecodice con Vc++ senza consultare la MSDN.ho trovato solo degli articoli poco chiari su codeguru
aki Inserita: 15 novembre 2004 Autore Segnala Inserita: 15 novembre 2004 Salveio sono in grado di creare delle DLL in Visual C++ 6.0, il problema e' che, se vengono modificate, magari aggiungendo dei nuovi metodi, quasi sempre, poiche' viene modificato l'header file, si devono ricompilare tutti i programmi che le utilizzano, anche se non sono interessati alla modifica.Per farmi capire meglio riporto un pezzo di untutorial suule DLL in Visual C(http://www.codeguru.com/Cpp/Cpp/cpp_mfc/tutorials/article.php/c4019/)"Let's say you built a .DLL that exports a class called CMyClass. You provide a copy of the header file for CMyClass to be used by the client application. Suppose that a CMyClass object is 30 bytes in size. Now let's suppose you modify the .DLL to change CMyClass. It still has the same public functions and member variables, but now CMyClass has an additional private member variable, an int. So now, when you create an object of type CMyClass, it's 34 bytes in size. You send this new .DLL to your users and tell them to replace the old .DLL. Now you have a problem. The client application is expecting a 30 byte object, but your new .DLL is creating a 34 byte object. The client application is going to get an error. "Io volevo sapere se ci sono metodi semplici, senza dover creare deggli oggetti COM o DCOM per intenderci, che permettono di superare questo problema; in giro ci sono degli articoli ( su MSDN non ne ho trovato nessuno ) come quello precedentemente citato, ma sono un po' confusi.
Savino Inserita: 15 novembre 2004 Segnala Inserita: 15 novembre 2004 Salve aki,Dunque,Explicit linking e' la via per accedere alle funzioni e dati contenuti in una DLL.Le diverse APIs importeranno soltanto le functionalities che ne vogliono usare.La DLL puo' venire aggiornata con nuove func. and data ma senza toccare lealtre che gia' stanno provedendo functionalities. Bisogna anche fornire il file.def nel quale vengono mappati i diversi entry points per le APIs.durante la compilazione.L'ordine di questi indirizzi vengono sempre respetati come nome e posizione.Il ricchiamo delle func. e data nelle APIs viene fatto tramite puntatori.Vai a leggere nella MSDN su questo argomento e vedrai che riugirai a trovare la soluzione. Saluto
aki Inserita: 15 novembre 2004 Autore Segnala Inserita: 15 novembre 2004 Salveprima di tutto grazie per le ripetute risposte, il mio problema pero' e' di utilizzare delle DLL per esportare delle classi, il caricamento delle Lib con il successivo reperimento dell'indirizzo della funzione va' benissimo nel caso appunto di utilizzo di funzioni, credo che ci siano problemi nel caso di instanziamento di oggetti e di utilizzo dei relativi metodi.
Savino Inserita: 16 novembre 2004 Segnala Inserita: 16 novembre 2004 Salve,Dunque, In il mondo del VC++ ci sono diversi vie per ricavare prestazioni dalle funzioni oppure data contenuta in in una classe, struttura , activeX, com, etc.Con il Explicit linking dovresti potere ricompilare un oggetto contenuto in una DLL che gia' sta fornendo funzionalità ad altri APIs senza andare a modificare nulla su questi.Niente .Lib , niente .H .Hai gia' capito il file .def ?Saluto.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora