Oppure

Loading
19/07/06 12:30
Shutdown
Ciao amici ho scritto un programma:

#include <windows.h>

using namespace std;

// Thread.
HANDLE Thrd;
// Variabili Thread.
DWORD dwThrdId, dwThrdPrm;

// Crea un nuovo Thread.
void createThread(void* method())
{
    Thrd = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) &method, &dwThrdPrm, 0, &dwThrdId);
}


void createThread(void* method()) serve per
creare un nuovo Thread in base al metodo passato
come parametro...
Il programma è corretto?
Dato un metodo come posso far partire un nuovo
Thread tramite il programma scritto di sopra??

Grazie 1000..
aaa
19/07/06 18:20
mar
Ciao,
stando alla documentazione microsoft il prototipo della ThreadProc dovrebbe essere il seguente:
[CODE]
DWORD ThreadProc(
LPVOID lpParameter
);
[/CODE]
Poi ovviamente se ne utilizzi uno diverso il compilatore non dovrebbe segnalare l'errore.
Quindi riadattando il tuo codice:
[CODE]
#include<windows.h>

// Thread.
HANDLE Thrd;
// Variabili Thread.
DWORD dwThrdId;

// Crea un nuovo Thread.
bool Create_Thread(DWORD (*method)(LPVOID lpParameter))
{
Thrd = CreateThread(NULL, 0,(LPTHREAD_START_ROUTINE)method,0,0,&dwThrdId);
if(Thrd) return true;
else return false;
}

DWORD Proc(LPVOID lpParameter){
// Qui inserisci istruzioni thread
MessageBox(0,"CIAO MONDO","INFORMATION",MB_OK);
     return true;
}

int __stdcall WinMain(HINSTANCE,HINSTANCE,LPSTR,int){

if(!Create_Thread(Proc))
MessageBox(0,"THREAD NON CREATO","ERROR",MB_ICONERROR);

system("pause>nul";);
return 0;
}
[/CODE]

Questo potrebbe essere un esempio poi se vuoi cambiare valore di ritorno e parametri della ThreadProc basta riadattare la dichiarazione del puntatore a funzione method.

Ciao.
aaa
19/07/06 18:24
mar
Perchè non funzionano i [CODE] [/CODE]?
aaa
19/07/06 18:48
Shutdown
mi sa che devi farli in minuscolo...
a quanto ne so io il forum è CaseSensitive.
aaa