| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1960 人关注过本帖
标题:[求助]用c程序复制*.exe
取消只看楼主 加入收藏
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
 问题点数:0 回复次数:10 
[求助]用c程序复制*.exe

我编了一段c的程序,意图是想把一个文件夹中的*.exe文件复制到另一个文件夹中,以下是我编的代码,不知哪里出错了,复制的exe文件运行的和原文件完全不一样了~~~崩溃了啊!!!哪位大侠帮忙看看,谢谢 ^o^ :


/*复制c目录下的reg.exe到c目录下的以startup命名的exe文件*/
#include <stdio.h>
#include "string.h"
#include "stdlib.h"
//////////////////////////////////////////////////////////////

int main()
{
int ch;
FILE *fp1,*fp2;
fp1 = fopen("c:\\reg.exe","ab+");//原始文件名为:c:\\reg.exe
if(fp1==NULL)
{
printf("Create StartUpCopy.exe Failed!\n");
fclose(fp1);
return -1;
}
else
{
fp2 = fopen("c:\\startup","wb+");
if(fp2==NULL)
{
printf("Create StartUpCopy.exe Failed!\n");
fclose(fp2);
return -1;
}
else
{
int buffer[65535];
long offset,offset1,offset2;
fseek(fp1,01,SEEK_SET);
offset1 = ftell(fp1);//文件首指针地址
fseek(fp1,01,SEEK_END);
offset2 = ftell(fp1);//文件尾指针地址
offset=offset2-offset1+1;//文件长度
fread(buffer,1,offset,fp1);
fwrite(buffer,1,offset,fp2);
}
//关闭两个文件
fclose(fp1);
fclose(fp2);
}
}

如果这位大虾有更好的程序,不令赐教。^o^谢谢

搜索更多相关主题的帖子: exe 
2006-05-02 00:30
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 

用二进制打开和复制可以吗?

2006-05-02 00:33
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 
但是用字符打开我试过也不行,就是几句话的问题,困扰我一天了,崩溃了,麻烦大虾帮忙,谢谢你拉,呵呵
2006-05-02 00:36
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 

是这样的么:
while((ch=fget(fp1))!=EOF)
{
fputc(ch,fp2);
}
我试过的,也不行的 不知道怎么搞的

2006-05-02 00:40
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 
谢谢你拉  呵呵
2006-05-02 00:40
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 
但是我觉得这两个没有什么本质上的不同,为什么结果不一样呢?
请教~~~
2006-05-02 00:46
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 
我看了半天觉得就是文件的打开方式不一样,有其他不同之处吗?
2006-05-02 01:05
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 
我是说用这个代码的时候:
while((ch=fget(fp1))!=EOF)
{
fputc(ch,fp2);
}
2006-05-02 01:07
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 
呵呵,手误,不好意思啊!
2006-05-02 01:14
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 
我的代码while((cha=fgetc(fpa))!=EOF)
{
fputc(cha,fpb);
}
和你的代码
cha = fgetc(fpa);
while (!feof(fpa))
{
fputc(cha, fpb);
cha = fgetc(fpa);
}
有什么不同吗?
我的就不能用而你的就正常运行~~~
2006-05-02 01:20
快速回复:[求助]用c程序复制*.exe
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021046 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved