C++ 使用发送Cstring并使用Win消息获取答案

C++ 使用发送Cstring并使用Win消息获取答案,c++,visual-c++,C++,Visual C++,我需要使用win消息发送字符串并返回答案。以下方法是否存在有关CString的内存管理问题 电话: 答复: LRESULT CMainWindow::OnMessageAuthorise(WPARAM wParam, LPARAM lParam) { CString *pStr = (CString*)wParam; *pStr="Bye"; return 0; } 看起来不错。SendMessage阻塞并且在OnMessageAuthorie返回之前不会返回,因此即使

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

电话:

答复:

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

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

看起来
params
是一个堆栈变量。我不知道windows的东西,但是当调用
CMainWindow::OnMessageAuthorise
时,最好确保
params
仍然存在。这在不同的线程中发生。“你好”和“再见”的大小可能不同,可以吗?如果“再见”比“你好”大呢?没关系。CString负责其内存分配。
LRESULT CMainWindow::OnMessageAuthorise(WPARAM wParam, LPARAM lParam)
{
    CString *pStr = (CString*)wParam;
    *pStr="Bye";
    return 0;
}