现象:
我们一个版本的测试中在一个程序A中嵌入调用另外一个程序B,却发现程序B总是自动异常退出。
而之前的版本中,参数传递的长度是一样的,程序B却能正常运作。
几经周折,终于发现是由于传递的命令行参数过长所致。
教训:
被启动程序B的路径 + 命令行参数 <= MAX_PATH
如:
c:\test.exe aaa
总长度是15,没问题,但如果此长度超过了MAX_PATH,则会有可能引起test.exe进程的异常。
注:
目标程序运行后并不是在所有情况下都会异常,估计也跟超过的长度有关系,所以目前也在传递长参数命令行的朋友发现自己的程序运行正常,请不要得意,尽快调整传递方式吧。