2个回答
展开全部
当然,之所以要给main函数传递参数,是考虑多进程的情况。每一个main函数执行就是一个单独的进程。
比如
进程1启动进程2,就需要给进程2传参数。可以看看CreateProcess函数。
同样进程结束后,需要知道返回值,来判断子进程执行是否成功,所以main函数最好有返回值。
比如编译后生成a.exe
process 1:
do sosomething
// Linux和Window平台的CreateProcess会有不同,具体请搜索
ret = CreateProcess 2("a.exe", p1, p2, p3, ...)// p1, p2, p3会作为参数传给a.exe的main
if (ret != 0) {
process 2 failed.
}
...
do something
比如
进程1启动进程2,就需要给进程2传参数。可以看看CreateProcess函数。
同样进程结束后,需要知道返回值,来判断子进程执行是否成功,所以main函数最好有返回值。
比如编译后生成a.exe
process 1:
do sosomething
// Linux和Window平台的CreateProcess会有不同,具体请搜索
ret = CreateProcess 2("a.exe", p1, p2, p3, ...)// p1, p2, p3会作为参数传给a.exe的main
if (ret != 0) {
process 2 failed.
}
...
do something
追问
你的意思是我在一个工程中使用了CreateProcess函数,就可以让另外一个工程中的main函数运行是吗?如果不在另外一个工程中给这个main函数传参数,只是运行这一个main,那就只有命令行模式是吗?
追答
是的,如果你通过main(argv, argc)的方式,想让argv得到赋值,就需要通过命令行的方式, 另外VC里面的项目->项目属性->配置属性选项可以赋值(当然这个是工具的问题,具体可搜索VC 命令行设置)。
另外,如果你想通过其他方式让main函数获得一些初始值,可以通过配置文件,注册表等等方式。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询