[英]C++ fstream is writing hex instead of string?
我正在尝试使用URLDownloadToFile()
来下载文件,该文件目前可以正常工作,但是我在使用回调函数并将回调输出wszStatusText写入文件时遇到了麻烦。
这是导致问题的函数:
HRESULT DownloadStatus::OnProgress(ULONG ulProgress, ULONG ulProgressMax, ULONG ulStatusCode, LPCWSTR wszStatusText)
{
fstream myfile;
myfile.open("file.txt", ios::app);
// this prints hex
myfile << " StatusText: " << wszStatusText;
myfile.close();
// this prints the string properly
MessageBox(NULL, wszStatusText, L"test", MB_OK);
return S_OK;
}
问题是MessageBox()
正确显示了数据...
更新
得到异常错误后(使用wfstream
),我发现它之所以给我,是因为wszStatusText
的第一个值为NULL。
您正在将宽字符C字符串传递到窄字符流中。 那里没有很好的自动转换功能,因此您只能获得一个指针地址。
请改用std::wfstream
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.