在使用Windows CE .net压缩应用程序
时,我是c ++的新手尝试将hexa数据写入文件
CString dataBlock1;
dataBlock1 = "";
CString temp;
for(int i = 0; i < rLen; i++)
{
temp.Format(L"%02X ",rec[i]);
dataBlock1 += temp;
}
std::ofstream out(file);
我收到此错误无法将参数1从wchar *转换为const char * 使用以下写入功能将六进制数据写入文件
out.write(myReader.dataBlock1.GetBuffer(),myReader.dataBlock1.GetLength());
我们如何将wchar_ *转换为const char *以使写入功能起作用。
感谢。
答案 0 :(得分:5)
您可以使用wcstombs
功能,参考here。
答案 1 :(得分:1)
Windows有一组类和函数,它们使用wchar_t(存储为UTF-16的文本)和char(存储在ANSI字符集中的文本)。如果你有指向wchar_t的指针,你需要使用一个接受wchar_t的适当的类或函数,或者你需要将数据转换为ANSI字符集。
在这种情况下,您需要ofstream的wchar_t变体wofstream。