Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 命令在CMD中工作,但在c+中不工作+;使用system()函数编程_C++ - Fatal编程技术网

C++ 命令在CMD中工作,但在c+中不工作+;使用system()函数编程

C++ 命令在CMD中工作,但在c+中不工作+;使用system()函数编程,c++,C++,我正在使用Visual Studio 2013 我试图从C++程序中运行CMD命令,但是有些命令在CMD中工作正常,但是在C++程序中不工作。例如, BtDebug -S/在CMD中工作,但不是从C++程序中的系统(“BtDest-S”)< /C> >。错误是: “btdiscovery”未被识别为内部或外部命令、可操作程序或批处理文件 为什么会发生这种情况,以及我如何修复这种情况?首先要检查的是托管(外壳化)进程的路径是否包含您试图触发的可执行文件。或者,您可以在启动代码中提供可执行文件的完整

我正在使用Visual Studio 2013

<>我试图从C++程序中运行CMD命令,但是有些命令在CMD中工作正常,但是在C++程序中不工作。例如,<代码> BtDebug -S/<代码>在CMD中工作,但不是从C++程序中的<代码>系统(“BtDest-S”)< /C> >。错误是:

“btdiscovery”未被识别为内部或外部命令、可操作程序或批处理文件


为什么会发生这种情况,以及我如何修复这种情况?

首先要检查的是托管(外壳化)进程的路径是否包含您试图触发的可执行文件。或者,您可以在启动代码中提供可执行文件的完整路径

它是在Windows的CMD中工作的,所以它应该在系统命令中运行,因为系统只是向CMD发送命令,不是吗?一个外壳化的进程可能与命令提示符的环境变量略有不同。目标可执行文件的完全限定路径可能是最安全的选择。如何提供完整路径?在启动应用程序btdiscovery的代码中,只需提供它的完整路径,例如c:\somefolder\bt\btdiscovery.exe(根据其在计算机上的实际位置适当更改路径)。如果您使用CreateProcess启动应用程序,我相信第一个参数是可选的pathspec,第二个参数是可执行文件本身……太棒了!很乐意帮忙。