MFC C++ 编辑框中的字符导出至文件中的问题

对于已经生成的私钥,把它导出到本地*.key 文件

能成功导出,但是导出的文件中的内容与原私钥不符,是乱码,是导出的方式有问题吗?

代码如下:

 void CRSADialog::OnBnClickedBtnExportKey2()   //导出私钥
{
    // TODO: 在此添加控件通知处理程序代码
    CFileDialog dlg(FALSE, L"key", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, L"*.key||");
    if (dlg.DoModal() == IDOK) {
        CString fileName = dlg.GetPathName();
        CFile file(fileName, CFile::modeCreate | CFile::modeWrite);
        CArchive ar(&file, CArchive::store);

        UpdateData(TRUE);
        ar << m_priKey;
        ar.Close();
    }
}

2个回答

char* buffer="hello cfile";
_CFile fWrite(_T("path"),CFile::modeWrite|CFile::modeCreate|CFile::typeBinary);
fWrite.Write(buffer,strlen(buffer);
fWrite.Flush();
fWrite.Close();
直接将原始内容二进制写入就好了。

qq_35113235
Kerris7 解决了,真是超级感谢!
大约 2 年之前 回复

肯定格式不对,CArchive的输出显然是它私有的格式,你保存你自己的对象还可以,但是用它存储标准格式的文件注定悲剧。
你需要用 CFile 代替 CArchive,并且写入正确的格式。我不是很清楚 .key 是什么格式,你应该查询下它的格式规范来写入字节。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问