繁体   English   中英

在Node.JS中运行.EXE

[英]Run .EXE in 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], function(error, stdout, stderr) {
        if(error) return cb(error);
        cb(null, stdout);
    });
}

当我运行脚本时,它什么也没做,似乎正在执行一个过程,但从未结束。 如果我使用命令提示符运行EXE文件,它将起作用。 .exe文件返回值。 我需要获得那个价值。

更新资料

实际上,我开始认为我的C ++代码在返回值时可能有问题。

int main(int argc, char* argv[]) {
   int a = 5 + 10;
   return a; //Will this a can be received by Node.Js?
}

这是正确的方法吗?

我不相信您将要提供给子进程的参数作为child_process.exec()的第二个参数。 相反,您将参数直接串联到exec()的第一个参数中。

请参阅此处的文档: child_process.exec(command[, options][, callback])

特别:

command <String>使用空格分隔的参数运行的命令

因此,对于您的情况,您需要以下内容:

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

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

另外,您可以尝试child_process.execFile(file[, args][, options][, callback])

execFile()现在使用的exec()execFile() 确实将arguments数组作为第二个参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM