PDA

Visualizza la versione completa : [C] Creazione un'applicazione che fa uso di più Console


UltraBeginner
26-01-2007, 15:28
Ciao a tutti,

sto cercando di fare un programma con due console,

ma dopo questa serie di istruzioni...

PROCESS_INFORMATION hConsole1;
STARTUPINFO hStartUp;

hStartUp.cb=15;
hStartUp.lpReserved=NULL;
hStartUp.lpTitle=NULL;
DWORD dwX;
DWORD dwY;
hStartUp.dwXSize=40;
hStartUp.dwYSize=40;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
hStartUp.dwFlags=STARTF_USESIZE;
hStartUp.cbReserved2=0;
hStartUp.lpReserved2=NULL;

CreateProcess("nokia.exe",NULL,NULL,NULL,FALSE,
CREATE_NEW_CONSOLE,NULL,NULL,&hStartUp,
&hConsole1);

mi crea 500 console.......

qualcuno sa aiutarmi?

oregon
26-01-2007, 15:39
Primo: cosa intendi con console?

Secondo: il codice manda semplicemente in esecuzione un programma, il nokia.exe, di cui noi non sappiamo nulla ... come ti si puo' dire qualcosa?

UltraBeginner
26-01-2007, 15:49
si hai ragione, dovevo essere piu preciso...faccio ammenda, cmq

1) per console intendo quella classica, quella che apre il DevCpp o ki per esso quando si fa un progetto "Console"

2) Dunque il programma nokia, riassumendo, crea un dizionario di parole memorizzaate in un file (la struttura dati e un albero di liste), dopo di che chiede un codice T9 a tastiera (va avanti finke l utente non digita 0) se il codice e presente nell albero permette di scegliere tra le parole associate a quel codice, fatta la scelta scrive della nostra parola la salva in un file e ricomincia.

Ora mi piacerebbe molto, e sto impazzendo leggendo nell msdn, che le parole al posto di essere salvate una a una sul file fossero visualizzate una a una a console.

provo a esemplificare con del codice

while(1)
{
printf("Inserire codice T9 (0 per finire): ");
scanf("%lf",&i);
if(i==0)
break;

flag=RicercaCodice(PuntaAlbero,i,&print);
if(flag)
{
accumulator+=strlen(print);
if(accumulator==30)
{
fprintf(fs,"\n",NULL);
accumulator=0;
}
fprintf(fs,"%s ",print); // sto tentando di creare un altra console, in modo che a questo punto, magari tramite un WriteConsole, si possa scrivere appunto sulla seconda console al posto che nel file....
}
}

UltraBeginner
26-01-2007, 15:53
Originariamente inviato da oregon
Primo: cosa intendi con console?

Secondo: il codice manda semplicemente in esecuzione un programma, il nokia.exe, di cui noi non sappiamo nulla ... come ti si puo' dire qualcosa?

damn ho letto bene adesso la tua risposta!!!!

... il codice manda semplicemente in esecuzione un programma...cavolo allora devo seguire un altra strada... mi potresti dare un suggerimento?

Ho letto sull'msdn che per una console di possono creare tanti buffer di uscita, pero alla fine se questi vengono scritti sempre nella stessa console...siamo da capo....help please :confused: :confused:

andbin
26-01-2007, 16:02
Una applicazione Windows può avere al massimo solamente 1 console. Lo spiega molto bene MSDN nella documentazione della funzione AllocConsole:


Remarks

A process can be associated with only one console, so the AllocConsole function fails if the calling process already has a console. A process can use the FreeConsole function to detach itself from its current console, then it can call AllocConsole to create a new console or AttachConsole to attach to another console.

If the calling process creates a child process, the child inherits the new console.

UltraBeginner
26-01-2007, 19:30
Originariamente inviato da andbin
Una applicazione Windows può avere al massimo solamente 1 console. Lo spiega molto bene MSDN nella documentazione della funzione AllocConsole:

acc, quindi non ce modo di fare questa cosa.....va bhe grazie dele dritte :ciauz: :ciauz: :ciauz: :ciauz:

Loading