进程启动命令行中怎么传递带空格的参数

                                           进程启动命令行中怎么传递带空格的参数

  

         一般我们在一个exe里面启动另外一个exe使用 ShellExecute 命令函数:

          比如下面的代码:

          

           要启动的exe位于D盘的根目录下面,要传递的命令行参数为一个路径:

           D:/config.ini 

           那么在MyExe.exe里面怎么获得传递过去的命令行参数呢,看下面的代码:

          

           那么,我们从上面的代码可以得出,命令行参数为argc-1个,都放在argv这个数组中,其中 argv[0] 是程序本身的执行路径,所以argc>=1 .

           我们通过argv[1]就可以获得第一个命令行参数,比如上面的代码,我们就获得了传递过来的命令行参数为D:/config.ini   。

           但是,当我改变传递的命令行参数的内容为D:/Program Files/config.ini的时候

           

我的MyExe.exe程序对命令行参数的解析出问题了,解析的结果为:D:/Program,而且argc=3,显然,程序把我的一个参数“D:/Program Files/config.ini”解析为两个参数:

argv[1]="D:/Program" ,  argv[2]="Files/config.ini" 了。

         这是个比较严重的bug ,那么怎么告诉系统我传递的是一个带有空格的参数,而不是多个参数呢?

                                                       解决方法

        可以使用下面的代码:

       

        将要传递的参数用"/""  和 "/""  给包起来,然后传递给ShellExecute就不会出现问题了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值