微信小程序> 数据恢复软件(一):一个恢复BMP位图文件的小程序

数据恢复软件(一):一个恢复BMP位图文件的小程序

浏览量:431 时间: 来源:weixin_34391445

一个网友想学习C语言.向我要个恢复BMP位图文件的程序,我使用了面向过程的设计来写个简单的程序,其中使用了API函数.这个程序本身在实际中没有什么用途.只是用来学习使用。

#include "windows.h"#include "stdio.h"int main(int argc, char* argv[]){    struct BMPHEADER{        WORD ND;        WORD TYPE;        int size;        WORD r1;        WORD r2;    }bh;    HANDLE f,fout;    DWORD Num;    int filesize;    char fname[20];    f=::CreateFile("img",GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);    if(f==INVALID_HANDLE_VALUE){return 0;}    filesize=::GetFileSize(f,NULL);    for (int i=0;ifilesize;i+=512)    {        ::SetFilePointer(f,i,NULL,FILE_BEGIN);        ::ReadFile(f,&(bh.TYPE),10,&Num,NULL);        if(bh.TYPE==MAKEWORD('B','M')&&bh.r1==0&&bh.r2==0)        {            ::SetFilePointer(f,i,NULL,FILE_BEGIN);            char *dout=new char[bh.size];            ::ReadFile(f,dout,bh.size,&Num,NULL);            sprintf(fname,"%d.bmp",i);            fout=::CreateFile(fname,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);            ::WriteFile(fout,dout,bh.size,&Num,NULL);            delete [] dout;            CloseHandle(fout);            i=((i+bh.size)/512)*512;        }    }    CloseHandle(f);    return 0;}


版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎