通過PostThreadMessage函式給執行緒發資料,然后在執行緒中通過PeekMessage函式來接收資料。
但是PeekMessage函式接收到的(LPSTR)msg.lParam有時正確有時錯誤,大多數時候接收到的
都是亂碼;(DWORD)msg.wParam資料都是正確的。這個問題怎么解決?
以下是相關代碼。
if (m_pWriteThread->PostThreadMessage(/*m_dwWriteThreadID, */
PWM_COMMWRITE,(WPARAM)dwBytesToWrite, (LPARAM)lpByte))
if (!::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
uj5u.com熱心網友回復:
你傳遞的是區域變數的地址?uj5u.com熱心網友回復:
我估計你的lpByte太大了,過界.uj5u.com熱心網友回復:
好象是的,不能用區域變數嗎?如果用類的public變數是不是就沒有問題了?
uj5u.com熱心網友回復:
你自己試一下不就清楚了~
uj5u.com熱心網友回復:
我估計你的lpByte太大了,過界.
沒有哦,最多不超過100位元組。
uj5u.com熱心網友回復:
可以 Post 之前 new 緩沖區 , 處理完訊息了 delete 緩沖區轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/132524.html
標籤:基礎類
上一篇:資料庫游標的存盤
