Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-07-2005, 22:04   #1
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
[VB6] Creazione PlugIn per Applicazioni

Raga mi chiedevo se era possibile, ma penso di si, e come si faceva a creare:

1) Una applicazione che potesse essere aspandibile tramite plugin
2) creare plugin per un'applicazione

questo in VB6...non riesco a trovare info su internet...qualcuno ne sa qualcosa?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 22:22   #2
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Bhe i plug in sono a volte solo delle dll aggiunte che il software riconosce e aggiunge una funzione nel menu... tanto un dll può contenere tutte le cose che contiene un normale progetto per exe, quindi anche le form.
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2005, 22:53   #3
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
e da queste DLL posso far richiamare funzioni che si trovano in altre dll che usa il mio progetto normalmente senza dichiarare nessuna nuova referenza?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 09:13   #4
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Sinceramente nn ho mai provato a richiamare un dll dentro un'altra dll... fai delle prove e poi fammi sapere...
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 12:08   #5
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Matpez tu che te ne intendi...sarebbe possibile creare un programma che si "autoespande"?

Una sorta di plugin...ma è diversa la mia idea..tipo un programma che legge da un file di testo delle righe di codice:
Codice:
if a>b then ...
e le aggiunge al suo codice originario?

nn so se mi son spiegato bene...
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 12:16   #6
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Al suo interno no, perchè dovresti ricompilarlo con il nuovo codice..

...io ho visto i plug in di nero usano delle dll, poi al suo interno va a sapere cosa richiamano, ma sicuramente le form che compaiono dopo aver messo il plug in
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 12:20   #7
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
come facci a far partire la form che sta in un plugin?

tipo io creo una DLL PLUGIN che contine:
FORM
MODULO (è un modulo base che mi serve x l'interfacciamento con un'altra dll che mi permette di collegarmi ad una periferica usb)

ora come faccio dal mio programma a far partire la form di quella DLL?

So come far creare un nuovo menu nel mio programma dove compare, nella lista del menu, il nome per richiamare quella dll...a questo ci posso arrivare ...ma poi come faccio a dirgli di far partire la form di quella dll plugin?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC

Ultima modifica di leadergl : 05-07-2005 alle 12:25.
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 12:48   #8
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Bhe ma tu devi già prevedere che la tua applicazione avrà dei plug-in, poi il meno lo visualizzi o no a seconda se trovi la dll

Per visualualizzare una form basta che rischiami una funzione del tuo modulo che abbia il comando frmxxx.show
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 13:15   #9
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Quote:
Originariamente inviato da matpez
Bhe ma tu devi già prevedere che la tua applicazione avrà dei plug-in....
in che senso?

Quote:
Originariamente inviato da matpez
Per visualualizzare una form basta che rischiami una funzione del tuo modulo che abbia il comando frmxxx.show
ah ecco..giusto
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 14:21   #10
Brigante
Senior Member
 
L'Avatar di Brigante
 
Iscritto dal: Apr 2004
Città: Lariano (RM)
Messaggi: 1372
Infatti potresti aggiungere nuove dll che contengono nuove funzioni per il programma, ma come è stato giustamente detto, il programma deve essere stata progettato per ricevere plugin, in modo da poter effettuare le chiamate alle nuove funzioni.
__________________
Careful With That Axe
Brigante è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 14:58   #11
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Quote:
Originariamente inviato da Brigante
Infatti potresti aggiungere nuove dll che contengono nuove funzioni per il programma, ma come è stato giustamente detto, il programma deve essere stata progettato per ricevere plugin, in modo da poter effettuare le chiamate alle nuove funzioni.
eh questo l'ho capito ma questa parte
Quote:
il programma deve essere stata progettato per ricevere plugin
in pratica in cosa si tradurrebbe?

gli faccio fare la ricerca di tutti i files in una dir e li aggiungo ad un menu? (menu che quindi avra una determinata index...a seconda del numero di elementi e poi faccio tipo:
Codice:
Private Sub mnuPlugIn_Click(Index As Integer)
'considerando che tutti i plugin avranno un modulo comune
'dove ci sta la funzione "InizializzaForm"

'...che ci metto qui...


End Sub
come lo rendo "PlugIn Ready" ?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 15:14   #12
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
allora...mi sto mentalmente avvicinando...
mi servono:

1) una struttura che mi consenta di salvare alcune informazioni sul PlugIN che sto aggiungendo...tipo:
Codice:
Type PLUG_STR
      Plugin_Path as string
      Plugin_Name as string
End Type
così so da dove prendere quel PlugIN
2) un array del tipo PLUG_STR dove conservare le info per ognuno dei plugin trovati
3) una procedura/funzione che quando clicco sull'elemento del menu che verrà creato ed associato all'elemento nell'array di prima mi permetta di creare una referenza al PlugIN giusto...una cosa del tipo:
Codice:
Public Function CreaReferenza(indice: integer)
...e qui dentro creo la referenza...
...posso creare la referenza ad una dll da qui?...
normalmente per creare una referenza si fa, ad esempio:

Public NUOVADLL as New NOMEREFERENZA

ma in questo caso come si fa?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 18:31   #13
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Ecco a te un bel esempio.. miraccomando segui quello che ti dico:

La cartella Exe contiene tutto quello che serve a te, prima di tutto come qlc ActiveX che si rispetti lo devi registrare, quindi trascina la dll sopra a regsvr32

Una volta fatto questo ricorda che la registrazione viene fatta nella path in cui sti trova, se sposti la path, rinomini o fai cose varie va riregistrata...

A questo punto, prendi la dll e la metti dove vuoi tu, magari sul desktop, lasciando l'eseguibile senza la sua dll... lancialo e premi il bottone, dovrebbe segnalarti un messaggio di errore, cioè che nn trova il tuo plug-in ...

Adesso chiuedi tutto, metti la tua dll assieme all'exe e lo rilanci, premendo sul pulsante si aprirà una form completamente a se stante dal progetto, unica caratteristica che si chiude con la form che lo ha lanciato (giustamente)


Fai queste prove e poi guarda i sorgenti, così ti fai un idea più chiara di tutta la faccenda!
Allegati
File Type: zip 000.zip (16.6 KB, 8 visite)
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 20:20   #14
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
come al solito impeccabile

sei un mito...grazie a te ho imparato tante cose sul VB

(P.S. x caso hai un cellulare motorola? se si...dammi sta soddisfazione...vedi i miei progressi in VB6..vai su http://www.leadergl.net e scaricati il FlexEditor 9.5F ...mi piacerebbe sapere che ne pensi )
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:32   #15
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Matpez ho problemi con la compilazione del codice....nel senso che nn riesco a creare l'exe...mi dice libreria non trovata...

inoltre come faccio nel caso in cui ho più PlugIn? Tu hai impostato:

Codice:
    Dim mcPlugIn        As Plug_In.Class1
    
    
    Set mcPlugIn = New Plug_In.Class1
    Call mcPlugIn.EditaLabel
    Set mcPlugIn = Nothing
ma come faccio a sapere se il nome assegnato al plugin è proprio "Plug_In"? se l'utente gli da un nome differente?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC

Ultima modifica di leadergl : 05-07-2005 alle 22:38.
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:49   #16
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Bhe, inanzitutto per compilare devi impostare nelle referenze le dll usate dal tuo programma, poi come seconda cosa per impostare + plugin basta che fai + dll hehehe

Per quanto riguarda il nome, di solito un utente non dovrebbe toccare i nomi dei componenti di un programma, ma tanto la dll anche se si chiama con un nome diverso, lui usa il nome dell'applicazione con cui hai compilato la dll.

Per il resto, come ti avevo già detto, fai un pochettino di prove, paciocca un pochetto, fai tentativi, altrimenti ci sentiamo domani per ulteriori informazioni

Notte



PS: pultroppo ho tutti sony-ericsson
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein

Ultima modifica di matpez : 05-07-2005 alle 22:54.
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:53   #17
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Forse io ho corso troppo, ma tu hai mai creato una dll, sai cos'è la compatibilità binaria?

Va bhe, cmq se nn lo sai te lo dico domani, adesso sono stanco e domani si lavora tutto il giorno attaccato a sto piffero di VB ehehhehe

byebye
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:56   #18
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Quote:
Originariamente inviato da matpez
Forse io ho corso troppo, ma tu hai mai creato una dll, sai cos'è la compatibilità binaria?

Va bhe, cmq se nn lo sai te lo dico domani, adesso sono stanco e domani si lavora tutto il giorno attaccato a sto piffero di VB ehehhehe

byebye

si, creato Dll....ma non so cosa sia la "compatibilità binaria" o magari non so che si chiama così...ok...domani mi illumini
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 08:00   #19
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
La compatabilità binaria è quella compilazione che ti permette di mantenere la compatibilità con la dll che avevi fatto prima.

La compatabilità binaria ti permette di non dovere tutte le volte ricreare l'eseguibile che utilizza la tua dll, altrimenti che caxxo serve avere una dll? heeheh

Per esempio se tu nella dll avessi tutti i calcoli per un software che fa paghe, poi esce l'euro e tu senza sbatterti più di tanto a ricompilare tutti i sorgenti di chissà quanti programmi, basta che ricompili la dll con la dovuta conversione in euro. Ma se nn avessi la compatibilità allora il lavoro sarebbe vano, perchèi tuo exe non ti riconoscerebbero più la libreria.

Per parlare un po' più tecnicamente, tu sai che nel registro ci sono degli identificativi di classe, quelli che sono fatti così: {000214EE-0000-0000-C000-000000000046}, praticamente quello è un identificativo che gli oggetti come le dll creano al momento della registrazione tramite il regsvr32 o tramite il setup del tuo software quando registra i componenti.
Se tu non hai la compatibilità lui ogni volta che compili ti ricrea un CLSID e quindi il tuo exe non trova il riferimento nel registro, se tu hai la compatibilità (dove possibile) lui riutilizza lo stesso CLSID e quindi i tuo exe sia da te che dall'utente funzionano dandogli la tua dll aggiornata e senza nemmeno avere più il bisogno di registrarla.

Detto questo che è solo un aiuto per utilizzare le dll, cerca di fare funzionare e di capire il mio esempio, dato che da me funziona e poi se hai altri dubbi gli esponi.

ciaoooooooooooooo
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 08:34   #20
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
Ottima informazione...mi hai fatto scoprire una cosa nuova

Ed ho anche compilato il tuo progetto...solo che rimane la domanda:
1) "nel caso chi crea la DLL cambia il nome del progetto come faccio a farla identificare dal programma?"

2) (poi ci sarebbe questa) io vorrei fare una cosa di questo tipo:
<ul type=disc><li>Analizzo la directory "Plugin" in cerca delle DLL
<li>A seconda del numero di DLL creo un menu dinamico che mi contenga un nome (diverso) per ogni DLL
<li> Quando uno clicca sul nome della DLL si apre la form corrispondente
</ul>

ecco quello che mi chiedo è...avendo tutti nomi uguali come faccio a distinguere le varie dll?
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Nutanix rende disponibile Azure Virtual ...
Il padrino del deep learning avverte: gl...
Il finto avviso "iPhone Storage is Full"...
Dietrofront in Cina, addio touchscreen p...
Un piccolo accessorio trasforma lo smart...
Dopo 370 anni il Cyphral Distich non è p...
Oppo Find X10, X10 Pro Max e X10 E: conf...
Dal microscopio all'IA: un cervello di i...
Cyberpunk 2077 arriverà su Battle...
Altro che divieto: interi pallet di GeFo...
QNAPTS-h966TX, il NAS per chi fa editing...
Il trucco semplicissimo per installare W...
Apple rinvia due novità di iOS 27...
Una memoria ferroelettrica raggiunge 10 ...
Honor Magic 9, Pro Max e Super Edition: ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 15:19.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v