Quello che ho capito è che per usare i thread devo scrivere una cosa del genere:
codice:
DWORD WINAPI ThreadProc (LPVOID lpParameter)
{
...
qui scrivo la funzione che deve essere "threaderata" di nome "ThreadProc"
...
}
int main (int argc, char* argv[])
{
...
scrivo il programma e per far eseguiere la funzione ThreadProc scrivo:
DWORD ID1;
HANDLE funz = CreateThread(NULL, 0, ThreadProc, &Param, 0, &ID1);
...
}
Giusto?
Ora mi chiedo se le funzioni che devo threaderare sono le funzioni di scrittura e lettura su seriale, che hanno parametri in ingresso, così come le ho scritte nel programma, come si legano le cose?
Devo scrivere una cose del genere:
codice:
DWORD WINAPI write (LPVOID lpParameter)
{
BOOL write(HANDLE hComm, char * buf)
{
DWORD nNumberOfBytesToWrite = strlen(buf);
DWORD NumberOfBytesWritten;
LPOVERLAPPED lpOverlapped = NULL;
BOOL res = WriteFile(
hComm,
buf,
nNumberOfBytesToWrite,
&NumberOfBytesWritten,
lpOverlapped
);
if (res)
cout << "Scrittura OK " << endl;
else
{
DWORD err = GetLastError();
cout << "Errore in Scrittura " << err;
}
return res;
}
}
Non credo che funzioni così.
Non riesco a capire come conciliare le cose.
Grazie
Ciccio