收藏 (0) +1 (0) +1 (0) +1
收藏成功查看收藏>>

正在阅读:实例编程:用VC写个文件捆绑工具实例编程:用VC写个文件捆绑工具

2004-02-24 10:14 出处:PConline 作者:elssann 责任编辑:linjixiong

  -----------------------------------------------------
  |aaa.exe|test1.exe|test2.exe|len2|len1|
  -----------------------------------------------------

  在文件最后面再加两段数据,分别用来存放test1.exe的文件长度和test2.exe的文件长度。并且固定len2和len1为30字节的长度。这样在aaa.exe得到执行的时候先后面的两个30字节内容,内容就是两个文件的长度,再根据这两个长度就可以准确读取到test1.exe和test1.exe的内容。
 
  看看aaa.exe程序的关键代码:

    CFile fSource(_pgmptr,CFile::modeRead | CFile::modeNoTruncate); //得到target.exe的文件长度
    int iSourceLength = fSource.GetLength();
    fSource.Seek(iSourceLength-60,CFile::begin);//移动文件指针到第test2.exe文件的末尾

    char buffer[40];
    ZeroMemory(buffer,40);
    fSource.Read(buffer,30);//读取第len2的内容,也就是test2.exe的长度

    int iTargetLength = atoi(buffer);
    fSource.Seek(iSourceLength-iTargetLength-60,CFile::begin);//移动文件指针到test2.exe文件的开头

    CFile fTarget("c:\\test2.exe",CFile::modeCreate | CFile::modeWrite |

  CFile::modeNoTruncate);//创建一个新文件为c:\\test2.exe

    char *pBuffer = new char[iTargetLength];//分配缓冲区
    ZeroMemory(pBuffer,iTargetLength);
    fSource.Read(pBuffer,iTargetLength);//将第test2.exe文件读到缓冲区
    fTarget.Write(pBuffer,iTargetLength);//将缓冲区内容写入c:\test2.exe
    delete []pBuffer;

  好了,现在test2.exe文件已经读出来了,接下来就是要读test1.exe的内容,过程大同小异

察看评论详细内容 我要发表评论
作者笔名简短内容 发表时间
:

键盘也能翻页,试试“← →”键

相关文章

关注我们

最新资讯离线随时看 聊天吐槽赢奖品
手机访问回到顶部