使用Wins发送Cstring并获得答案

时间:2014-04-16 14:14:42

标签: c++ visual-c++

我需要使用win消息发送字符串并获得回复。以下方法是否存在有关CString的内存管理问题?

呼叫:

CString params = "Hello";
SendMessage(hWnd,WM_AUT_MESSAGE, (WPARAM)&params,0); 

答案:

LRESULT CMainWindow::OnMessageAuthorise(WPARAM wParam, LPARAM lParam)
{
    CString *pStr = (CString*)wParam;
    *pStr="Bye";
    return 0;
}

1 个答案:

答案 0 :(得分:0)

看起来不错。 SendMessage阻塞并且在OnMessageAuthorise返回之前不会返回,因此即使使用指向堆栈变量的指针也没有竞争条件。 (当然,假设所有这些都发生在同一个过程中。)