Newsgroup: it.comp.programmare.win32
Titolo: Applicazioni console in Win32

Esiste un modo per non far comparire la finestra DOS-like all'avvio di un
programma console?
Ciao e grazie a chi si interesserŕ, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
---------------------------------------------------------------------------

 programma console?
Un programma da console, fa apparire automaticamente la finestra del dos, ma
comunque, per realizzare ciň che hai in mente, potresti creare un
applicazione GUI in C, creando una finestra invisibile e scrivere le tue
funzioni nella sua WindowProc.
Oppure, se sei pigro, puoi evitare di scrivere il codice della finestra e
scrivere il codice del programma direttamente nella WinMain(), insomma,
dipende da quello che vuoi realizzare.
Spero di essere stato utile
Ciao
    Fabio

dipende da quello che vuoi realizzare.
Non sono pigro :-), semplicemente non ho alcun bisogno di creare un
finestra. Se dipendesse solo da me scriverei il mio codice nel corpo della
WinMain di una applicazione GUI ma in quest'ultima modalità il programma non
fa funzionare correttamente funzioni come kbhit() e getch(). Per questo ho
necessità di linkare in modalità console solo che, dato che non stampo nulla
a video, non vorrei si aprisse l'inestetica finestra DOS-like. Come posso
fare?
Ciao e grazie in anticipo a chi si interesserà, Giuseppe


> Non sono pigro
Mica ho detto che sei pigro!

Mica ho detto che sei pigro!
#  Oppure, se sei pigro, puoi evitare di scrivere il codice della finestra e
#
---------------------^
#  scrivere il codice del programma direttamente nella WinMain(), insomma, #
#  dipende da quello che vuoi realizzare. #
Lo hai scritto qui. Ma io non me la sono presa, anzi ci ho scherzato sopra
:-).
Ciao, Giuseppe


 fa funzionare correttamente funzioni come kbhit() e getch(). Per questo ho
Scusa, ma a che ti serve getch() se non hai una finestra dos???
Solitamente, queste app "invisibili" non dovrebbero interagire con l'utente.

...


Sto programmando delle applicazioni di prova x 3Dfx con le glide 3 (l'app
non è invisibile, anzi è a tutto schermo :-) ) e, invece di creare una
finestra con il suo loop dei messaggi, avrei voluto utilizzare getch() e
kbhit() in modalità console per permettere all'utente di "premere un tasto
per continuare". L'unico problema è l'inestetica finestra DOS che appare
all'avvio del programma, prima che la 3Dfx vada a tutto schermo. Come posso
evitare che compaia?


programma console?
Nel momento in cui entri in main() la console e` gia` stata creata, quindi
bisogna fare qualcosa ancora prima. Le chiamate che creano la console sono
dentro al codice "preconfezionato" della funzione mainCRTStartup, che e` il
"vero" entry point del programma (e che a sua volta chiamera` main). Forse se
riesci a ridefinirla potresti avere successo...
Bye! Lorenzo Lutti (
http://members.tripod.it/fidocad
)

riesci a ridefinirla potresti avere successo...
Innanzitutto ti ringrazio per esserti interessato al mio problema.
Ho guardato attentamente il sorgente di mainCRTStartup e non ho notato
alcuna chiamata a funzioni per l'apertura della console. Non soddisfatto,
con il debugger ho fatto il trace all'interno di mainCRTStartup e ho notato
(con il Call Stack) che la console viene creata ancora prima, e precisamente
in una delle tre chiamate a funzione della libreria Kernel32.dll dove io non
posso intervenire in alcun modo. Mi sa che devo rassegnarmi e tenermi la
finestra console (o passare a d un'applicazione GUI). Grazie comunque per
l'aiuto.
Ciao, Giuseppe
---------------------------------------------------------------------------
_Guybrush su IRCNet canale #programmazione
ICQ: 42227764
---------------------------------------------------------------------------

Bye! Lorenzo Lutti (
http://members.tripod.it/fidocad
)
Saluti,
    Mardy
--
Per rispondere togliere NVN dall'indirizzo.

Dalla linea di comando del linker e': " /entry:"winmain" ".
Grazie Mardy, ho cercato l'opzione e l'ho trovata. Comunque ho deciso di
passare ad un'app GUI. Anche se per quello che devo fare io questo
aggiungerà del lavoro supplementare, preferisco questa soluzione piuttosto
che utilizzare questi "sporchi trucchetti"  :-) (anche se credo non avrebbe
funzionato perchè il problema si presenta prima dell'entry point, e
precisamente nelle DLL di sistema che chiamano l'app).


finestra console (o passare a d un'applicazione GUI).
Infatti: puoi sempre creare un'applicazione GUI senza finestre e ciclo dei
messaggi che emuli il comportamento di un'applicazione console (e che quindi
in WinMain crei una console anziche` delle finestre). Di solito quando scrivo
dei piccoli programmini che non hanno bisogno di interfaccia utente uso la
modalita` GUI e sviluppo tutti il codice nel WinMain.


modalita` GUI e sviluppo tutti il codice nel WinMain.
Ho intenzione di creare una applicazione GUI con una finestra (che risulterà
invisibile a causa della 3Dfx a tutto schermo) che gestisca i messaggi di
tastiera.
