gpt4 book ai didi

c++ - 获取垃圾文本。如何将字符数组变量转换为 LPARAM 类型?

转载 作者:可可西里 更新时间:2023-11-01 12:00:13 27 4
gpt4 key购买 nike

无论从文件中检索到什么数据,我都需要在文本框中显示文本。

在 Windows 应用程序中按下特定按钮 (IDB_SHOW_BUTTON) 时,我正在执行以下操作:-

case IDB_SHOW_BUTTON:{  
char buf[1000];
vReadFileFromHardisk(buf); //storing the read data of file to buffer
SendMessage(editHwnd,WM_SETTEXT,NULL,(LPARAM)buf);//Due to this, I get junk text.
}
break;

我正在从文件中读取数据并将其存储到缓冲区中。我不明白为什么每次单击按钮时都会收到垃圾文本。

当我更改SendMessage4th 参数 时,即如下所述,我在按下特定按钮时得到正确的输出:-

SendMessage(editHwnd,WM_SETTEXT,NULL,(LPARAM)L"My First Edit Window");

请告诉我在将数据存储到 buf 并通过 SendMessage 发送数据时如何显示正确的文本。

提前致谢。

最佳答案

看到工作示例中的“L”了吗?您正在将一个窄字符串传递给需要 Unicode 的函数。

你需要要么

  1. 将您读入的文本转换为 Unicode - 您可以使用 MultiByteToWideChar 来完成此操作在其他人中;您需要知道输入的编码是什么,例如UTF-8
  2. 发送消息的窄格式 WM_SETTEXTA,以对您已阅读的数据使用当前系统编码
  3. 将您的程序设置从 Unicode 更改为多字节(但不要这样做)

我强烈建议 1 并习惯在整个程序中使用 Unicode(又名 UTF-16)。

关于c++ - 获取垃圾文本。如何将字符数组变量转换为 LPARAM 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10815480/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com