Я хочу хранить данные cstring в двоичном формате (не в текстовом режиме, а в непонятном), но не могу их хранить
Мое требование состоит в том, чтобы хранить строковые данные в файле to .dat или .bin, который человек не может понять.
Я могу хранить целые числа в файле в двоичном режиме, но не могу хранить строку в двоичном режиме.
Я попробовал использовать CFile и CArchive в mFC
Попробовал использовать fstream
Пробовал использовать файл*
Но не удалось.
Может ли кто-нибудь помочь мне в этом?
Что я уже пробовал:
void CAuthenticationFileDlg::OnBnClickedButton1() { // TODO: Add your control notification handler code here UpdateData(TRUE); static int count =0; DisplayKeys(count); CString strTotalKeys = m_keys->GetKey1() + m_keys->GetKey2() + m_keys->GetKey3() + m_keys->GetKey4(); m_vectKeys.push_back(strTotalKeys); m_EditKey1.SetFocus(); CFile pFile; ASSERT (pFile != NULL); if (!pFile.Open (_T("foo.dat"), CFile::modeReadWrite | CFile::modeCreate|CFile::typeBinary)) { // Handle error return; } CArchive arStore(&pFile, CArchive::store); Serialize(arStore); delete m_keys; count++; if(count>0) { m_keys = new CKeys; } UpdateData(FALSE); }
void CAuthenticationFileDlg::Serialize(CArchive &ar) { if (ar.IsStoring()) { // Write the object to the archive ar.WriteObject(m_keys); ar.Close(); } else { // Verify the object is in the archive. CKeys* pKey = (CKeys*) ar.ReadObject(RUNTIME_CLASS(CKeys)); m_keys = pKey; CString strTotalKeys = m_keys->GetKey1() + m_keys->GetKey2() + m_keys->GetKey3() + m_keys->GetKey4(); m_vectKeys.push_back(strTotalKeys); DisplayKeys(); } }