C语言 打开文件 问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 15:26:55
详细说一下:

自己用 C语言写了一个程序myapp.exe(其实是在CVI下写的,不过CVI支持标准C,这个可以不用理会),它可以把文件保存为指定的类型比如*.aaa 。 现在的目标是,当双击*.aaa 文件时,可以直接调用myapp.exe 来打开,现在已经实现了双击*.aaa文件时会调用myapp.exe(通过修改注册表),但是由于不知道在C中如何知道调用程序的文件路径,所以只能打开程序myapp.exe,但是不能打开文件。请问各位大虾,该怎么实现?
补充下,举个例子,我们双击*.doc文件,系统会自动调用word打开它,我想知道的是,word 程序如何知道是具体哪个文件在调用它,从而打开它的呢?注意,在C语言环境下~~~

这个要用到带参数的main函数你先看下我这段程序
#include "stdio.h"

main(int argc,int *argv[])
{
int i;
FILE *f;
char buf[100];
buf[99]=0;
for(i=0;i<argc;i++)
printf("%s",argv[i]);
if(0==(f=fopen(argv[1],"r")))
printf("failed");
else
{
fread(buf,1,99,f);
fclose(f);
printf("%s",buf);
}

getch();
}
当你用这个命令运行一个文件的时候它会自动把文件路径以及文件名作为参数传给这个程序,你调用的时候使用这个参数就可以了。比如我的程序中这个文件全名的参数就是argv[1]

在注册表时注册的
打开 HKEY_CLASS_ROOT中,
先定义的后缀,并定义后缀的名称
再向下,在后缀名称的相关注册中可以定义这种后缀打开的文件和图标等
具体看一下结构吧,先简单的