【VC6.0】如何拖动txt文件到exe文件上面,并把txt文件的文件名传给exe中的字符数组?

[1]用C语言写了一个处理txt文本文件的程序,里面通过fopen打开txt文件,但是fopen需要的文件名字符串需要用gets手动输入,很麻烦。希望的效果是:拖动txt... [1]用C语言写了一个处理txt文本文件的程序,里面通过fopen打开txt文件,但是fopen需要的文件名字符串需要用gets手动输入,很麻烦。希望的效果是:拖动txt文件到exe文件上,自动把txt文件的文件名传给exe文件里的字符数组,然后fopen通过这个字符数组打开txt文件进行操作。
[2]如何给debug文件夹下生成的exe程序一个ico图标?利用VC6.0。(只要回答问题【2】我会另加5分,若回答问题【2】满意会加20分,言而有信)
展开
 我来答
帐号已注销
2011-11-23 · TA获得超过3000个赞
知道大有可为答主
回答量:1338
采纳率:75%
帮助的人:1300万
展开全部
[1]利用main函数的参数。例子如下:
#include <stdio.h>

int main( int argc, char* argv[] )
{
if( argc < 2 )
{
return;
}

FILE* pFile = fopen( argv[1], "r" );
char c;

while( !feof( pFile ) )
{
c = fgetc( pFile );
putchar( c );
}

system( "pause" );
}
这样把一个txt文件拖到exe文件图标上,自动运行exe,把文件名作为参数。我是在同一个目录下测试的,成功。
[2]如果是MFC程序就非常简单。在工程的目录里除了有Debug文件文件夹外还有一个res文件夹,里面有一个和工程名同名的ico文件,直接修改这个ico文件或用其他文件替换掉,重新编译工程即可。
如果你说的是Win32 Console Application的话,可以点往项目里“添加资源”菜单,资源类型选择“Icon”,然后右边点“新建”,打开图标绘图页面,随便画几笔,保存,最后重新编译整个工程,Debug文件夹里的exe图标就变了。以上过程在VC2003里成功。
追问
问题二已经成功解决!但对于问题一有一个疑问: if( argc < 2 )
{
return;
}的判断条件是为什么?return;语句是什么意思?我见过的return语句后面都有个变量啊,这个没有。

还有,拖放完成后,系统把exe文件名作为实参传递给argv【0】,把txt文件名传递给argv【1】,如果在dos提示符下执行exe时带有其它参数,则依次传递给argv【2】,argv【3】。。。是这样吗?
追答
(1)argc表示所有argv字符串的个数。我加这个判断条件是因为,后面用到了argv[1]。如果你没有拖动文件到exe文件上,而是直接运行exe文件,并没有提供参数,这时候只有argv[0]有值,而访问argv[1]可能会出错,所以加了这个条件。return后面应该是有个值,但是main函数好像是个例外,直接写return也不会有问题。这个是我个人的习惯,没有其他意思。
(2)argv里的字符串就是这个意思。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式