Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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
Javascript 在Node.JS中运行.EXE_Javascript_C++_Node.js - Fatal编程技术网

Javascript 在Node.JS中运行.EXE

Javascript 在Node.JS中运行.EXE,javascript,c++,node.js,Javascript,C++,Node.js,我在Node.Js中运行外部可执行文件时遇到问题。 我的代码如下所示: function executeFile(m, cb) { var urlTarget = "D:/thesis_node/upload/1.jpeg"; var urlScene = "D:/thesis_node/upload/scene.jpeg"; exec(__execDirName+'/FeatureDetection.exe', [urlTarget, urlScene], functi

我在Node.Js中运行外部可执行文件时遇到问题。 我的代码如下所示:

function executeFile(m, cb) {
    var urlTarget = "D:/thesis_node/upload/1.jpeg";
    var urlScene = "D:/thesis_node/upload/scene.jpeg";
    exec(__execDirName+'/FeatureDetection.exe', [urlTarget, urlScene], function(error, stdout, stderr) {
        if(error) return cb(error);
        cb(null, stdout);
    });
}
当我运行脚本时,它什么也没做,看起来它在做一个过程,但它永远不会结束。如果我使用命令提示符运行我的EXE文件,它就会工作。.exe文件返回值。我需要得到那个值

更新

实际上,我开始认为我的C++代码在返回值时可能出错。p>
int main(int argc, char* argv[]) {
   int a = 5 + 10;
   return a; //Will this a can be received by Node.Js?
}

这是正确的方法吗

我认为您没有提供希望提供给子进程的参数作为
child\u process.exec()的第二个参数。而是将参数直接连接到
exec()
的第一个参数中

请参阅此处的文档:

具体而言:

命令运行命令,参数以空格分隔

因此,就您的情况而言,您可能需要:

var cmdToExec = (__execDirName + '/FeatureDetection.exe' + ' ' + urlTarget + ' ' + urlScene);

exec(cmdToExec, function(){...});

或者,你可以试试


execFile()
与您现在使用的
exec()
相比,是否将参数数组作为第二个参数。

您是否可以检查process manager并查看FeatureDetection.exe是否仍在运行?我运行它,并直接检查我的process manager,但未发现FeatureDetection.exe正在运行。或者我可能没有注意到,因为这个过程只需要大约1秒@Zero298所以我尝试使用您的代码片段
var cmdToExec=(uuu execDirName++'/FeatureDetection.exe'+''+''+urlTarget++'+urlsecene);exec(cmdToExec,function(){…})并且它仍然不工作。看起来节点正在响应exec调用,但实际上什么也没有发生。至于
execFile()@零298