我正在使用LZMA SDK开发一个压缩/解压缩项目。
主程序包含一些必须使用的参数来运行应用程序。
要从命令行运行它,我使用以下命令:
我正在使用VS 2013,因此我已将
主程序包含一些必须使用的参数来运行应用程序。
要从命令行运行它,我使用以下命令:
./LzmaUtil.exe e input.elf output.elf
我正在使用VS 2013,因此我已将
e in.elf out.elf
添加到命令参数中,重建项目(生成可执行文件),但当我按下运行时似乎没有任何反应。
请注意,我在debug文件夹中有input.elf
,并且.exe
也在那里。标志e
用于压缩文件,output.elf
是压缩文件。
主函数包含:
int MY_CDECL main(int numArgs, const char *args[])
{
char rs[800] = { 0 };
int res = main2(numArgs, args, rs);
fputs(rs, stdout);
return res;
}
完整的源代码可以在以下链接中获取:http://www.7-zip.org/sdk.html
调试:
如果没有任何参数,我会得到以下结果:
The program '[5284] LzmaUtil.exe' has exited with code 0 (0x0).
根据我提到的参数,我得到:
The program '[5284] LzmaUtil.exe' has exited with code 1 (0x1).
有些事情正在发生!!!
在main函数处设置断点我得到了:
numArgs 4 int
args 0x007eaca8 {0x007eacbc "E:\\1PFE\\LZMA\\LzmaUtil\\Debug\\LzmaUtil.exe"} const char * *
非常感谢您的帮助,谢谢。
main
函数的开头设置断点会发生什么?如果“命令参数”字段为空会发生什么? - Jabberwockyargs[0]
指向"E:\\1PFE\\LZMA\\LzmaUtil\\Debug\\LzmaUtil.exe"
,args[1]
指向"e"
,args[2]
指向"in.elf"
等。这是相当基础的 C 语言内容。 - Jabberwocky