我需要使用win消息发送字符串并获得回复。以下方法是否存在有关CString的内存管理问题?
呼叫:
CString params = "Hello";
SendMessage(hWnd,WM_AUT_MESSAGE, (WPARAM)¶ms,0);
答案:
LRESULT CMainWindow::OnMessageAuthorise(WPARAM wParam, LPARAM lParam)
{
CString *pStr = (CString*)wParam;
*pStr="Bye";
return 0;
}
答案 0 :(得分:0)
看起来不错。 SendMessage阻塞并且在OnMessageAuthorise返回之前不会返回,因此即使使用指向堆栈变量的指针也没有竞争条件。 (当然,假设所有这些都发生在同一个过程中。)