Newsgroup: it.comp.programmare.win32
Titolo: Programma senza interfaccia

Ciao a tutti.
Voglio creare un eseguibile senza alcun tipo di in terfaccia grafica, usando
le MFC e VC++ 6.0
Mi sono reso conto che è cosa ardua !  :-)
Sono riuscito a risolvere il mio problema usando un trucco. In pratica ho
creato un progetto "Dialog Base". Poi ha eliminato dalla dialog che viene
creata di default i tasti OK e CANCEL ed ho rimpicciolito la finestra fino a
farla diventare un quadratino con un lato da mezzo centimetro. Infine nella
OnInitDialog ho richiamato una funzione che aveva un compito ben specifico e
subito dopo ho fatto partire un timer praticamente istantaneo tale da far
completare l'esecuzione dell'OnInitDialog prima di invocare la
DestroyWindow().
Questa soluzione non mi piace. Non è che sia un purista della
programmazione, ma non disdegno una programmazione corretta e lineare.
Purtroppo il lavoro spesso costringe ad inventarsi le cose più strane per
fare le cose nel minor tempo possibile, il più delle volte trascurando anche
l'ottimizzazione computazionale, che con i PC non ha più molto senso.
Comunque se qualcuno puo' aiutarmi, lo ringrazio anticipatamente.
------------------------
Antonio Baldassarre
Alenia Marconi Systems - RT&O
Progettazione Software - Giugliano
Circumvallazione Esterna di Napoli
80014 Napoli
Tel: +39(81) 8180 476
e-mail: 
abalda...@amsjv.it
------------------------

 Antonio Baldassarre
ciao

Scusa ma perchè non crei un'applicazione Console con il Wizard?!?

Scusa un attimo... perche semplicemente non ti crei una applicazione Windows
base, e nella WinMain non crei nessuna finestra... sarebbe come lavorare in
dos (non hai callback, ma te ne puoi creare tu a mano)
Dome


Anch'io provo a dire la mia.
Se non ho capito male il tuo programma non deve avere alcuna interfaccia e
deve operare come segue:
1) Start del programma
2) Esecuzione della procedura
3) Termine del programma
Quindi come ti ha detto qualcuno basta una normale applicazione Windows base
e lavori nel WinMain.
In ogni caso se vuoi rimanere in ambito MFC basta che metti il tuo codice
nella CWinApp::InnitInstance prima di creare la dialog.
Poi invece di passare alla creazione dell'interfaccia ci metti un bel retrun
FALSE.
Ecco un straccio di esempio:
BOOL CBabbewoApp::InitInstance()
{
 AfxEnableControlContainer();
 // Standard initialization
 // If you are not using these features and wish to reduce the size
 //  of your final executable, you should remove from the following
 //  the specific initialization routines you do not need.
#ifdef _AFXDLL
 Enable3dControls();   // Call this when using MFC in a shared DLL
#else
 Enable3dControlsStatic(); // Call this when linking to MFC statically
#endif
 Procedura(); // LA TUA PROCEDURA
 return FALSE; // ESCE DAL PROGRAMMA
// TUTTO CIO' CHE C'E' QUI SOTTO PUO' ESSERE CAVATO
 CBabbewoDlg dlg;
 m_pMainWnd = &dlg;
 int nResponse = dlg.DoModal();
 if (nResponse == IDOK)
 {
  // TODO: Place code here to handle when the dialog is
  //  dismissed with OK
 }
 else if (nResponse == IDCANCEL)
 {
  // TODO: Place code here to handle when the dialog is
  //  dismissed with Cancel
 }
 // Since the dialog has been closed, return FALSE so that we exit the
 //  application, rather than start the application's message pump.
 return FALSE;
}
Quindi puoi iniziare a togliere la risorsa dialog, la classe dialog, insomma
tutto ciň del progetto che non serve piů.
Ciao
Porlock