Base64图片文件保存出错,TBytes转char*内存错误

学不完啊学不完 2018-09-19 08:49:31
哪位大神帮帮手,Base64图片文件解码后还原保存成功,
但程序运行完出错,以下是代码内容:
//EncodeMemo->Text里面是标准的图片Base64字符串数据;

UnicodeString EncodeText = EncodeMemo->Text;
TBytes FileBytes = TNetEncoding::Base64->DecodeStringToBytes(EncodeText);

//问题代码--------------------------------------------
const int BufLen = FileBytes.Length;
char* FileBuffer = new char[BufLen];
memmove(&FileBuffer, &FileBytes, BufLen);
//-----------------------------------------------------

UnicodeString FileName = FormatDateTime("mmddhhmmss",Now().operator double());
FileName = "D:\\" + FileName + ".jpg";
int iCreate = FileCreate(FileName);
FileClose(iCreate);
int iWrite = FileOpen(FileName, fmOpenWrite | fmShareExclusive);
FileWrite(iWrite, FileBuffer, BufLen);
FileClose(iWrite);
delete FileBuffer;

运行完成报错:

...全文
174 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
//改成流方式保存文件即可 TMemoryStream* FileStream = new TMemoryStream(); FileStream->Write(FileBytes, FileBytes.get_length()); FileStream->SaveToFile(FileObjecte); delete FileStream;

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧