繁体   English   中英

使用child_process从nodejs app运行控制台应用程序

[英]running console application from nodejs app using child_process

我正在尝试使用child_process从nodejs运行控制台应用程序的实例(在cpp上编写)。 这是代码:

function startSingleApp() {
    console.log("startSingleApp entered");

    var exec = childProcess.exec;
    var appOut;
    exec("./ConsoleApplication.exe"  ,function callback(error, stdout, stderr){
        appOut = stdOut;
        console.log("started console app");
    });
};

并且ConsoleApplication4仅打印字符串(cout <<“some string”)预期行为:对于ConsoleApplication4的每个实例 - 打开控制台窗口并创建新进程实际行为:没有控制台窗口,没有进程创建。 但是“启动控制台应用程序”字符串打印在控制台上(从nodejs应用程序启动)ConsoleApplication.exe位于nodejs应用程序所在的同一文件夹中如果用某个窗口应用程序(记事本或计算)替换ConsoleApplication.exe - 它可以工作。 问题 - 这段代码中缺少什么? 我是否需要从控制台应用程序手动捕获控制台?
你的帮助会很有帮助。
提前做出来的

如果从控制台运行控制台应用程序,它仍将在同一控制台中运行。 Windows控制台只是在通过资源管理器运行控制台应用程序时自动打开的便利。

您可以自己尝试:首先打开cmd.exe ,然后运行ConsoleApplication.exe 它不会打开一个新窗口; 输出将显示在提示下方。 然后你会得到另一个。

如果要显示窗口,可以手动运行cmd

exec("cmd /c ConsoleApplication.exe", function callback(error, stdout, stderr) {
    appOut = stdOut;
    console.log("started console app");
});

您可以使用start创建一个新的控制台窗口,如下所示:

exec("start ConsoleApplication.exe", ....)

并在C ++中添加一行:

getch();

暂无
暂无

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

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