VC中BASE64编码和解码使用详解

2020-01-06 13:59:03丽君

采用以上方法就可以将二进制数据转换成可见字符进行传递就可以了.

那么如何使用呢?举以下两个例子

第一个:将一个图片转换成 txt 文本 并保存起来

 

 
  1. //选择一个图像文件,将它转为 文本保存至 _T("D:2.txt"  void CTextPicDlg::OnBnClickedButton2() 
  2. {  // TODO: 在此添加控件通知处理程序代码 
  3. CFileDialog file(TRUE,".jpg","");  if (file.DoModal() == IDOK) 
  4. {  CFile data(file.GetPathName(), CFile::modeReadWrite); 
  5. int len = data.GetLength();  BYTE *dv; 
  6. dv = (BYTE *)malloc(len*sizeof(BYTE));  data.Read(dv, len); 
  7. data.Close();  int slen = (len / 3) * 4; 
  8. slen += 10;  TCHAR * tc; 
  9. tc = (TCHAR *)malloc(slen);  slen = BASE64_Encode(dv, len, tc); 
  10. CFile save(_T("D:2.txt"), CFile::modeCreate | CFile::modeWrite);  save.Write(tc, slen); 
  11. save.Close();  free(tc); 
  12. free(dv);  } 

第二个例子,将一个文本文件还原为一个图像

 

 
  1. void CTextPicDlg::OnBnClickedButton3()  { 
  2. // TODO: 在此添加控件通知处理程序代码  CFileDialog file(TRUE, ".txt", ""); 
  3. if (file.DoModal() == IDOK)  { 
  4. CFile data(file.GetPathName(), CFile::modeReadWrite);  int len = data.GetLength();