amiga Inserito: 24 novembre 2004 Segnala Share Inserito: 24 novembre 2004 Ho creato un programma in vb con prodave.Ho chiamato la dll come modulo .Se lancio l'applicazione e non ho la dll in system l'applicazione non parte , emettendo un messaggio di mancato ritrovamento della w95_s7.dll.Vorrei per evitare questo problema incorporare la dll nell'seguibile , non chiamandola in un modulo esterno, in modo tale da poter lanciare l'applicazione anche se su un altro computer la dll non è presenteCome si può fare?Grazie molte Link al commento Condividi su altri siti More sharing options...
zoom Inserita: 24 novembre 2004 Segnala Share Inserita: 24 novembre 2004 Esistono dei programmi che incorporano tutto nell'eseguibile in modo che non hai bisogno di librerie esterne.La dll dovrebbe funzionare anche se si trova nella cartella stessa dove c'e' l'eseguibile.Scusa ma se fai il programma in VB devi portarti dietro in ogni caso le librerie di base e gli eventuali OCX per cui che differenza fa se aggiungi anche la DLL nel pacchetto di installazione?ciaoRoberto Link al commento Condividi su altri siti More sharing options...
Aladino Inserita: 24 novembre 2004 Segnala Share Inserita: 24 novembre 2004 La cosa che non mi è mai piaciuata in VB è proprio il fatto che non crea eseguibile standalone ma ha bisogno di tantissime librerie. Ogni componente è una libreria o quasi e te le devi portare tutte dietro. Meglio il C++ Builder o Delphi. Vabbè, alla fine è sempre questione di punti di vista.Ti conviene creare un pacchetto d'installazione, se invece la includi nell'eseguibile la devi tirar fuori in qualche modo.Secondo me c'è però il rischio di qualche problema all'avvio dell'eseguibile.Infatti se tu hai un eseguibile con dentro una DLL inclusa come risorsa che estrai al momento dell'avvio del programmae memorizzi in apposito file, suppongo che potrebbe nascere un messaggio d'errore ancor prima dell'estrazione di questa libreria se nel programma esiste un collegamento ad una funzione presente nella libreria.Poi non so bene come ragiona il compilatore VB ma torno a ripeterti che un pacchetto d'installazione è la cosa migliore.Ti saluto. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 24 novembre 2004 Segnala Share Inserita: 24 novembre 2004 meglio il C# Link al commento Condividi su altri siti More sharing options...
Dario Valeri Inserita: 24 novembre 2004 Segnala Share Inserita: 24 novembre 2004 ciaodipende , e' un punto di vista , ad ogni modo il compilatore visual basic praticamente non esiste, o almeno non e' unacosa come il compilatore "c" o altri.infatti il visual basic compilato e' un insieme di chiamate alle API o poco piu'.le librerie sono necessarie appunto perche' egli (il visual basic) non integra quasi nulla da se stesso.esiste la possibilita' di compilare in modo che le funzioni sparse qua e la' siano integratenel blocco principale , ma mi sembra che non lo usi nessuno.ciao dario Link al commento Condividi su altri siti More sharing options...
zoom Inserita: 25 novembre 2004 Segnala Share Inserita: 25 novembre 2004 I programmi di cui parlavo io incorporano tutto e non estraggono nulla in fase di esecuzione. Ti ritrovi un eseguibile unico che rimane sempre tale.Gli altri linguaggi sono in grado di creare eseguibili unici (in gergo informatico si parla di eseguibili monolitici) ma attualmente, come potete vedere dai programmi di installazione, la maggioranza usa librerie esterne per cui, di fatto, ci si ritrova nella stessa situazione di VB.C# e i vari net sono carini ma per eseguirli ci vogliono oltre 20 Mb di net Framework (sono le librerie del Net).Purtroppo la programmazione segue le mode senza pensare se siano veramente utili o meno per il progetto che si vuole creare. E cosi abbiamo programmi ottimi di pochi Kb che non hanno bisogno di librerie esterne ne creano file sparsi per il PC ne chiavi di registro e programmi che invece ti riempono di DLL, OCX e quant'altro e che riempono il registro di configurazione (autentica stronzata di Microsoft, fonte di innumerevoli guai) di chiavi per la maggior parte inutili che ti rimangono anche dopo la disinstallazione. Anche le Microsoft fa programmi del genere tant'e' che poi sul loro sito si trovano suggerimenti e programmi per rimuovere le tracce rimaste.Il fatto e' che la programmazione adesso ha come obiettivo la produttivita' (fare programmi nel piu' breve tempo possibile per venderli subito) ma non la qualita'. Ecco cosi' spegate le varie versioni (nella pubblicita ognuna e' piu' stabile veloce e bella della precedente), aggiornamenti continui e cosi' via.CiaoRoberto Link al commento Condividi su altri siti More sharing options...
Comin Inserita: 27 novembre 2004 Segnala Share Inserita: 27 novembre 2004 REGISTRAZIONE DI UNA LIBRERIA Si diceva che ogni installazione aggiunge Librerie al S.O. ed il kit di installazione effettua delle modifiche al Registry per ogni nuovo componente. Nel caso in cui ci sia la necessità di registrare manualmente un libreria usare l'utilità REGSVR32.EXE. Il programma è contenuto in C:\WINDOWS\SYSTEM e può essere eseguito da DOS o da Esegui di Windows Per registrare un componente Regsvr32.exe c:\prova\nomefle.dll Per deregistrarlo Regsvr32.exe c:\prova\nomefle.dll /u I componenti EXE si registrano automaticamente alla loro prima esecuzione. Se è necessario che la libreria si registri e si chiuda automaticamente allora è necessario aggiungere /regserver (/unregserver lo deregistra).ciao buon lavoro Link al commento Condividi su altri siti More sharing options...
Savino Inserita: 1 dicembre 2004 Segnala Share Inserita: 1 dicembre 2004 Salve amiga,Vorrei per evitare questo problema incorporare la dll nell'seguibile , non chiamandola in un modulo esterno, in modo tale da poter lanciare l'applicazione anche se su un altro computer la dll non è presenteCome si può fare?In anzitutto non puoi incorporare una DLL della siemens o chiunque altro costruttore dentro di un tuaAPI a livello codice, anche se fosse possibile, per questioni di copyright.Secondo, si' puoi tracciare un link dinamico oppure statico tra l'API e la DLL.Puoi anche accedere in modo implicito oppure esplicito.Quando l'API trova il richiamo a un indirizzo esterno, a secondo il OS utilizzato, il instruction pointer cerca nella cartella System oppure System32(in Win. ovvio).Poi, se non trova niente, cerca nella cartella dove si trova l'API, e se ancora non c'e' niente li'a volte ritorna nullo, avolte continua a cercare ovunque, questo dipende anche dalla portabilita' del OS.La dll dovrebbe funzionare anche se si trova nella cartella stessa dove c'e' l'eseguibile.Certo!per cui che differenza fa se aggiungi anche la DLL nel pacchetto di installazione?a punto !Sono fatte a posta per quello.La cosa che non mi è mai piaciuata in VB è proprio il fatto che non crea eseguibile standalone ma ha bisogno di tantissime librerieBeh, come a detto anche Dario,il Basic e' stato sempre un linguaggio interpretato e non compilato, anche se ci sono state delle versioni custom con dei file oggetti molto vicine al compilato.Saluto Link al commento Condividi su altri siti More sharing options...
Savino Inserita: 2 dicembre 2004 Segnala Share Inserita: 2 dicembre 2004 Salve,Per registrare un componente Regsvr32.exe c:\prova\nomefle.dll Per deregistrarlo Regsvr32.exe c:\prova\nomefle.dll /uSi', ok ma....Questo va bene per i componenti sw basati su COM technology,cioe' componenti activeX che devonoregistrare il suo GUID nel registro di win.., cosi' potere accedere alla loro interfaccia server esposta. Nel caso della DLL w95_s7.dll questo non e' necesario, visto che il accesso avviene impicitamente oppureesplicitamente da puntatori alle loro data e member functions.Saluto. Link al commento Condividi su altri siti More sharing options...
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