0 工具准备
vscode,编辑C代码
Code Runner插件,用于生成exe
1 生成支持带参处理的.exe
C源码如下:
#include "stdio.h"
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
printf("argc : %d\r\n", argc);
for (i = 0; i < argc; i++)
{
printf("argv[%d] : %s\r\n", i, argv[i]);
}
system("pause"); // 暂停程序,直到用户按下任意键
return 0;
}
编辑好之后点击vscode右上角的“Run Code”按钮即可生成exe:
生成好的.exe:
注:
代码功能:
打印参数个数,遍历所有参数并打印出来。
(1)argc。argc指示参数的个数,最少包含1个参数。
(2)argv*[]。argv*[]保存了参数字符串指针。
假如argc=3,则argv[0]保存了.exe路径字符串指针,argv[1]保存了参数1字符串指针、argv[2]保存了参数2字符串指针,依次类推。即使.exe不带参数运行,也会包含1个参数,也就是.exe路径的字符串指针。
2 win10下带参执行exe的几种方法
2.1 使用快捷方式
右键.exe,单击“创建快捷方式”生成.exe的快捷方式。如下:
右键快捷方式,单击“属性”,在“目标”输入框后的.exe路径后输入我们需要添加的参数,本例添加的参数1是argv1,参数2是argv2:
双击快捷方式,查看结果:
可以看到传入的参数个数、参数内容和我们预期的一致。
2.2 使用批处理脚本
在和.exe同一个目录下新建一个文本文档,添加以下内容:
start with_param.exe hello world
含义是启动with_param.exe,且参数1为hello、参数2为world。
然后将文本文档后缀名修改为.bat,告知win10这是一个批处理脚本:
双击批处理脚本,查看运行结果:
可以看到传入的参数个数、参数内容和我们预期的一致。
3 总结
(1)带参执行.exe在嵌入式方面可以用于生成镜像后加头、加校验和等操作。
(2).exe至少会有1个参数,且首个参数(argv[0])固定为.exe的路径。如果不止1个参数,则我们添加的参数1-n分布在argv[1]-argv[n]。