我需要传递一个指向 std::string
的指针作为 WM_USER
消息的 LPARAM
并获取字符串或 char*
在主窗口的 WM_USER
消息处理程序中。
我该怎么做?
我现在正在做的事情(这是不正确的,因为它没有产生应有的结果):
PostMessage(hwnd, LP_DOWNLOADUPDATE, (WPARAM)hHandleToWindow, (LPARAM)&remSize);
其中 remSize
是一个 sdt::string remSize;
一个全局变量。
在我正在做的消息处理程序中:
SetWindowText( (HWND)wParam, (char*)lParam );
最佳答案
只需要得到一个 C 风格的字符串,即一个指向以零结尾的字符数组的指针:
PostMessage( hwnd, LP_DOWNLOADUPDATE, (WPARAM)hHandleToWindow, remSize.c_str() );
确保 remSize
不会超出范围,直到您可以确定消息已被处理,否则会有悬空指针。
关于C++指针,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13797997/