C++指针,如何?

标签 c++ winapi

我需要传递一个指向 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/

相关文章:

c++ - 安全地以模块化方式乘以无符号整数的最佳 C++ 方法是什么?

c++ - 是否可以按值删除队列元素?

c# - 连接到网络共享时如何提供用户名和密码

c++ - WinAPI 向后/向前导航

c# - .NET 中的 "start/affinity"等价物

c++ - 'std::vector<T>::iterator it ;' doesn' t 编译

c++ - 在 C++ 中将 bitset 转换为 int

c++ - 我在 C++ 中创建阻塞队列 vector 时遇到问题

c++ - 如何隐藏/取消隐藏文件而不删除 Windows 上 C++ 中的其他属性

python - 在选定文件上运行 Python 脚本