c++ - 使用 SendMessage 获取垃圾来填充列表框

标签 c++ windows winapi listbox sendmessage

我正在尝试在 Visual Studio 上使用 C++ 填充列表框。我有一个 std:string 数组,我想使用它们。我的解决方案似乎不起作用:

std::string label = "something";
char *buffer;
buffer = _strdup((label).c_str());

我检查过缓冲区变量包含正确的字符串,但随后我调用了 SendMessage

SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM)buffer);

ListBox 已填充,但我看到的不是“某物”,而是一些随机的日文字符...

最佳答案

SendMessage是一个宏,可以定义为SendMessageW,使用Unicode字符串。

您正在使用 std::stringchar,因此请尝试使用 SendMessageA,它明确地使用 ANSI 字符串。

关于c++ - 使用 SendMessage 获取垃圾来填充列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38250843/

相关文章:

c++ - 找到一个或多个多重定义的符号

C++ 定时器不工作?

windows - 使用 Windows DIR 命令按时间戳对文件进行排序

winapi - 桌面应用程序转换器转换失败 'E_NO_COMPATIBLE_EXPANDED_BASE_IMAGE'

c++ - 如何使用设备 ID 获取 USB 硬件 ID?

c++ - 在 MFC 中使用 Qt dll

c++ - 打印多维数组中的元素 - C++

c++ - 有什么方法可以转储 g++ 编译程序的类布局

windows - 在 ini 文件中存储 unicode 字符串时会不会出现与编码相关的问题?

windows - 如何使用 Go 在 Windows 上获取文件所有者?