详解dll动态库的开发与调用及文件的读写小程序
详解dll动态库的开发与调用及文件的读写小程序
首先我们先来学习一下动态库的调用,先找到动态库的.dll和.lib文件并将其导入到同源文件相同级别的文件夹下面,然后在添加进其头文件,并右击项目处,然后点击链接,链接我们的lib文件(一定要是全名称包括扩展名),然后我们就可以调用动态库的函数了。
Dll是我们具体的函数,lib使我们的函数描述文件。
#include#include /* 该代码是对文件读写操作的使用 */ #pragmawarning(disable:4996) #defineMAX_DATA_LEN4096 //进行加密的函数 intFileSymEnc(char*from,char*to); voidmain(){ char*from="C:/Users/Administrator/Desktop/结构体的拷贝问题.docx"; char*to="C:/Users/Administrator/Desktop/副本结构体的拷贝问题.docx"; //下面调用函数进行文件的读写 intre=FileSymEnc(from,to); if(re==0){ printf("文件读写错误!"); } system("pause"); } intFileSymEnc(char*from,char*to){ //返回值,以确定执行状态,-0代表失败,1代表成功 intre=1; //写了几个 intwrittenLen=0; //准备写几个 intplainlen=0; //在堆区分配4k内存空间 unsignedchar*buff=malloc(MAX_DATA_LEN); buff=memset(buff,0,MAX_DATA_LEN); FILE*f=fopen(from,"rb"); FILE*t=fopen(to,"wb"); if(f==NULL){ printf("打开读文件错误!"); gotoEND; } if(t==NULL){ printf("打开写文件错误!"); gotoEND; } while(!feof(f)) { writtenLen=fread(buff,1,MAX_DATA_LEN,f); //判读是否读到了文件末尾,如果读到了则跳出循环 if(feof(f)) { plainlen=writtenLen; break; } if(writtenLen!=MAX_DATA_LEN){ //没有读取成功 printf("文件读入失败!"); re=0; gotoEND; } //读取成功进行文件的写入 writtenLen=fwrite(buff,1,MAX_DATA_LEN,t); if(writtenLen!=MAX_DATA_LEN){ printf("文件写入失败!"); re=0; gotoEND; } } //外面处理不到4K的写入问题,我们本不用进行格外的小数据读写,主不过这和我们的加密方式相关连得 writtenLen=fwrite(buff,1,plainlen,t); if(writtenLen!=plainlen){ printf("文件写入失败!"); re=0; gotoEND; } END: //堆分配的内存进行释放 if(buff!=NULL){ free(buff); buff=NULL; } //进行文件的关闭操作 if(f!=NULL){ fclose(f); f=NULL; } if(t!=NULL){ fclose(t); f=NULL; } returnre; }
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。