我尝试了各种代码的变体,如何将文本框的内容保存到文件中,例如:
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个字符或更多。
答案 0 :(得分:2)
您在代码中调用未定义的行为(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机箱,但我认为这是正确的或接近它。
希望它有所帮助。