|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
|
[C] creazione processi multipli da programma padre
Ciao a tutti,
sto scrivendo un programmino che serve a semplificarmi la vita per la conversione e l'ordine di file mp3. Questo programma prende in input una cartella qualsiasi e crea in un'altra cartella di output la stessa directory tree della cartella di partenza, copiandoci eventualmente sopra i file mp3 ri-codificati usando il ben noto LAME 3.97 Ora, il mio programma funziona molto bene, e riesco a far partire il processo LAME.exe tramite questa funzione, alla quale passo una stringa contenente "lame -h --abr 112 #FILE INPUT# #FILE OUTPUT#" per fare in modo che il LAME stesso crei un mp3 ri-codificato con bitrate medio sui 112kbps: Codice:
void startNewLameProcess(char* fullParString)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
if( !CreateProcess(
NULL,
TEXT(fullParString),
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&si,
&pi )
)
{
printf("Creazione processo fallita... (%d).\n", GetLastError() );
return;
}
WaitForSingleObject( pi.hProcess, INFINITE );
DWORD dwExitCode = 0;
GetExitCodeProcess(pi.hProcess, &dwExitCode);
if(dwExitCode == STILL_ACTIVE) {
TerminateProcess(pi.hProcess, 0);
}
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
E' possibile effettuare questa operazione anche sul mio programma, anche utilizzando le API di windows??? Oppure posso tenere solo 1 istanza del LAME.exe, aspettare che termini, e poi iniziarne un'altra? In questo caso, esiste una sorta di ottimizzazione per i sistemi dual/quad core? Grazie anticipatamente
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Inoltre: GetSystemInfo() per sapere quanti processori ci sono. E se hai modo di usarle in modo interessante ... raccontacelo! Io personalmente non ho ancora avuto modo di mettere mano su un sistema dual-core.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) Ultima modifica di andbin : 28-11-2006 alle 20:59. |
|
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Sep 2005
Città: Bus PCI 1, periferica 0, funzione 0 (Torino)
Messaggi: 213
|
Quote:
TI farò sapere qualcosa di più domani, dopo un pò di testing
__________________
Ho concluso affari con: Ippo 2001, Klintf, albert78, Piripikkio, starsky, oldfield e IL0V€INT€R. da EVITARE zarovat |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:22.


















