- 主题:怎么把命令行参数传递给CreateFile函数
我的代码是这样写的,编译的时候报错啊
if( argc < 2 )
{
printf("usage: %s %s/n", argv[0], "infile");
exit(1);
}
HANDLE hFile = CreateFile(&argv[1],
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
--
FROM 124.78.9.*
我把代码改成了这样,参数传出来了。可是编译的时候
最后的一行还是报错,哪里错了啊?
if( argc < 2 )
{
printf("usage: %s %s\n", argv[0], "infile");
exit(1);
}
strcpy(lpFileName, argv[1]);
printf("%s",lpFileName);
HANDLE hFile = CreateFile(lpFileName,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
【 在 javame (yimin) 的大作中提到: 】
: 我的代码是这样写的,编译的时候报错啊
: if( argc < 2 )
: {
: ...................
--
FROM 124.78.9.*
编译错误信息也不贴?
CreateFileW vs CreateFileA
--
FROM 114.241.231.*
问题解决了,因为我写的是C语言程序,所以
HANDLE hFile
不合法,把声明提前就解决问题了。
【 在 z16166 的大作中提到: 】
: 编译错误信息也不贴?
: CreateFileW vs CreateFileA
--
FROM 124.78.9.*
c语言没这个要求…
【 在 javame 的大作中提到: 】
: 问题解决了,因为我写的是C语言程序,所以
: HANDLE hFile
: 不合法,把声明提前就解决问题了。
: ...................
--
FROM 120.244.156.*
ANSI C89 requires variables to be declared at the beginning of a scope. This gets relaxed in C99.
对于MSVC,通常把*.c改为*.cpp就完事了
【 在 dormouseBHU 的大作中提到: 】
: c语言没这个要求…
--
修改:z16166 FROM 114.241.231.*
FROM 114.241.231.*
今年是2020,C89是30年前的标准。。。
采用C89标准的msvc版本应该是20年前的 vc6。。。
【 在 z16166 的大作中提到: 】
: ANSI C89 requires variables to be declared at the beginning of a scope. This gets relaxed in C99.
: 对于MSVC,通常把*.c改为*.cpp就完事了
:
--
FROM 120.244.156.*
你看看楼主,经常鼓捣一些所谓的精简版体积小的编译器,不知道哪里淘来的老古董。。。
提问也经常是丈二和尚摸不着头脑的,不知道用的啥编译器,就只能先猜
【 在 dormouseBHU 的大作中提到: 】
: 今年是2020,C89是30年前的标准。。。
: 采用C89标准的msvc版本应该是20年前的 vc6。。。
: :
--
修改:z16166 FROM 114.241.231.*
FROM 114.241.231.*
lz还好搞java别折腾了
--
FROM 122.194.1.*
但是我记得 msvc 一直不支持 c99 标准啊。
反正我自己如果开写 c 代码,都是用 c89 标准。
【 在 dormouseBHU (dormouseBHU) 的大作中提到: 】
: 今年是2020,C89是30年前的标准。。。
: 采用C89标准的msvc版本应该是20年前的 vc6。。。
--
FROM 117.24.207.*