|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2003
Messaggi: 177
|
Condividere i dati tra più progetti
Premetto: tutto quello che dirò è riferito a VB6.
Ho necessità di realizzare un progetto che scambia dati con altri progetti. Ad esempio posso inserire un progetto al''interno di un'altro, così facendo creo un gruppo di progetti. Ma come posso avviare l'uno o l'altro e rendere disponibile i dati elaborati da uno all'altro? Grazie!!! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
In teroria non puoi, perchè una volta che tu hai compilato il tutto non crei un Gruppo di Exe ma tanti Exe separati fra di loro, il gruppo di progetti di VB6 è nato per facilitare la visualizzazione di molti singoli progetti ma facente parte di un applicazione che gli utilizza!!
Io nn so cosa ti voglia passare all'altro, ma potresti sempre unasare come mezzo di scambio un file INI oppure il registro di config! Se mi dici meglio cosa vorresti fare ti posso dare una risposta più concreta sul problema che vorresti risolvere. ciaoooooooooooo |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Apr 2003
Messaggi: 177
|
More info
Allora provo a spiegarti meglio.
Il primo progetto è una specie di menù che gestisce gli altri programmi. Il primo è in grado di avviare gli altri, ma devo poi poter ottenere i dati elaborati da loro, come matrici, variabili, ecc.... Se usassi un file(soluzione vagliata ma scartata) o una tabella per condividere i dati funzionerebbe sicuramente, ma richiede tempi di elaborazione troppo onerosi. Come posso fare. Lavorando con un linguaggio di livello molto alto non credo di potermi permettere di accedere ad un'area di memoria destinata alla condivisione dei dati, non mi trovo mica in C o in assembler(non lo userei mai per applicazioni troppo complicate). Grazie per le risposte |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Non possono comunicare fra di loro due exe in VB6
|
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: May 2003
Città: Roma
Messaggi: 3642
|
sei sicuro di quello che dici?
e la gestione dei messaggi non è forse una comunicazione tra .exe? (o dll) io invece credo che sia possibile, per es. mediante api SendMessage() guarda su msdn! |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Ma se sai così tante cose, comemai nn cerchi tu
cmq il SendMessage: The SendMessage function sends the specified message to a window or windows. The function calls the window procedure for the specified window and does not return until the window procedure has processed the message. The PostMessage function, in contrast, posts a message to a thread’s message queue and returns immediately. |
|
|
|
|
|
#7 |
|
Bannato
Iscritto dal: May 2003
Città: Roma
Messaggi: 3642
|
ma il "cerca su msdn" non era per te ma per il creatore del thread
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
La soluzione migliore è il file... Non c'è concorrenza... Se ci fosse concorrenza allora sarebbero altre le strade da prendere...
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
Mi perdoni |
|
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: May 2003
Città: Roma
Messaggi: 3642
|
no
considerati schiaffeggiato col mio guanto bianco e sfidato a singolar tenzone! domattina all'alba ti consento di scegliere la rivoltella |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
|
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Apr 2003
Messaggi: 177
|
grazie per le rispoate
La msdn l'ho guardata e non ho trovato nulla di buono.
Quindi ho chiesto a voi. Se progettassi una dll potrei allora scambiare dati tra questi due eseguibili che la utilizzano? |
|
|
|
|
|
#13 |
|
Bannato
Iscritto dal: May 2003
Città: Roma
Messaggi: 3642
|
anche tra exe! SendMessage() ripeto o PostMessage
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Teoricamente si, ma non devi fare una dll con una multi istanza altrimenti la prima istanza si isola dalla seconda e saresti di nuovo da capo
|
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
exe1: lancio exe2 attendo che sia finito exe2 prendo i dati elaborati da exe2 allora l'ideale è il file Se la situazione è questa: exe1: lancio exe2 finoa d un certo evento: prendo i dati elaborati in tempo reale da exe2 Allora ci sono tante strade percorribili...SendMessge non è certo l'ideale... Ci sono sia i file, una soluzione semplice: FILE di lock FILE dati exe1: apro il file di lock in modo esclusivo se non lo posso aprire riprovo continuamente quando l'ho aperto: se c'è scritto 1 allora prendo i dati dal file dati e losvuoto scrivo uno 0 nel file di lock e lo chiudo exe2: apro il file di lock in modo esclusivo se non lo posso aprire riprovo continuamente quando l'ho aperto: se c'è scritto 0 allora scrivo nuovi dati nel file dati scrivo un 1 nel file di lock e lo chiudo In questo modo l'unico problema sono le attese attive sullo sblocco del file (si può ovviare a questo con una mutex con nome)... Guardate le API CreateMutex e WaitForSingleObject... Altrimenti ci sono tante di quelle strade, ma sono molto complicate... Ad esempio pipe, mailslot e altre... |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:17.



















