使用 GetWindowText 将文本框保存到文件中:std::string 到 LPWSTR
Saving a Textbox into file with GetWindowText : std::string to LPWSTR
关于如何将文本框的内容保存到文件,我尝试了各种代码变体,例如:
std::string str; // same problem with std::wstring
GetWindowTextW(hwndEdit, str.c_str(), 0); // same problem with GetWindowText
std::ofstream file;
file.open("myfile.txt");
file << str;
file.close();
但是都出现了某种字符串变量转换错误:
main.cpp(54) : error C2664: 'GetWindowTextW' : cannot convert parameter 2 from 'const char *' to 'LPWSTR'
如何使用GetWindowText
或GetWindowTextW
?
注意:我不知道长度:可以是128个字符,也可以是1167个字符或更多。
您在代码中调用了未定义的行为 (UB)。我想这就是你想要做的,但只有你自己知道。
int len = GetWindowTextLengthA(hwndEdit);
if (len > 0)
{
std::vector<char> text(len+1);
GetWindowTextA(hwndEdit, &text[0], len+1);
std::ofstream file("myfile.txt", std::ios::out | std::ios::binary);
file.write(&text[0], len);
}
我手边没有 Windows 盒子,但我认为这要么是正确的,要么非常接近。
希望对您有所帮助。
关于如何将文本框的内容保存到文件,我尝试了各种代码变体,例如:
std::string str; // same problem with std::wstring
GetWindowTextW(hwndEdit, str.c_str(), 0); // same problem with GetWindowText
std::ofstream file;
file.open("myfile.txt");
file << str;
file.close();
但是都出现了某种字符串变量转换错误:
main.cpp(54) : error C2664: 'GetWindowTextW' : cannot convert parameter 2 from 'const char *' to 'LPWSTR'
如何使用GetWindowText
或GetWindowTextW
?
注意:我不知道长度:可以是128个字符,也可以是1167个字符或更多。
您在代码中调用了未定义的行为 (UB)。我想这就是你想要做的,但只有你自己知道。
int len = GetWindowTextLengthA(hwndEdit);
if (len > 0)
{
std::vector<char> text(len+1);
GetWindowTextA(hwndEdit, &text[0], len+1);
std::ofstream file("myfile.txt", std::ios::out | std::ios::binary);
file.write(&text[0], len);
}
我手边没有 Windows 盒子,但我认为这要么是正确的,要么非常接近。
希望对您有所帮助。