javascript - 在 Node.JS 中运行 .EXE

标签 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], 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> The command to run, with space-separated arguments

所以对于你的情况,你会想要这样的东西:

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

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

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

execFile() 与您现在使用的 exec() 不同,确实需要参数数组作为第二个参数。

关于javascript - 在 Node.JS 中运行 .EXE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37733900/

相关文章:

javascript - 在 Robotium 中插入 javascript

javascript - VUE.JS专长。 Velocity.js。无法在过渡 Hook 上实现自定义过渡

javascript - 如何显示节容器

c++ - 使用 MKL 稀疏矩阵 vector 相乘

c++ - 当我们使用右值引用时到底发生了什么,std::move 是如何工作的?

java - 在 DOM 中使用 mongodb 对象的 _id 值是个好主意吗?

javascript - 如何在窗口加载后加载图像?

c++ - 设置断点,但未命中断点

javascript - 如何在 Express 中处理 "Cannot <METHOD> <ROUTE>"?

node.js - Node.js 中的 Anytime 算法