Javascript Node.js-派生的exe不提供任何输出 我还在学习C++,刚刚开始使用节点,我在C++中创建了一个IRC客户端,用于在聊天中接收消息,我想通过使用生成的子进程的流STDUT从NoDE.js中获取这些。

Javascript Node.js-派生的exe不提供任何输出 我还在学习C++,刚刚开始使用节点,我在C++中创建了一个IRC客户端,用于在聊天中接收消息,我想通过使用生成的子进程的流STDUT从NoDE.js中获取这些。,javascript,c++,node.js,Javascript,C++,Node.js,但是,我没有收到来自exe的输出。 我唯一一次在Node.js脚本中收到来自exe的输出是在结束永久循环(irc_run)之后,但是我认为这不会有任何效果,因为它是异步生成的 exe在正常启动时工作正常,它显示发送的所有消息 使用的图书馆: 控制台应用程序1.cpp #include "stdafx.h" #include "libircclient.h" void event_numeric(irc_session_t *session, unsigned int event, cons

但是,我没有收到来自exe的输出。 我唯一一次在Node.js脚本中收到来自exe的输出是在结束永久循环(irc_run)之后,但是我认为这不会有任何效果,因为它是异步生成的

exe在正常启动时工作正常,它显示发送的所有消息

使用的图书馆:

控制台应用程序1.cpp

#include "stdafx.h"
#include "libircclient.h"
void event_numeric(irc_session_t *session, unsigned int event,
  const char *origin, const char **params,
  unsigned int count) {
  return;
}

void event_connect(irc_session_t *session, const char *event,
  const char *origin, const char **params,
  unsigned int count) {
  irc_cmd_join(session, "#username", 0);
}

void event_channel(irc_session_t *session, const char *event,
  const char *origin, const char **params,
  unsigned int count) {
  printf("%s\n", params[1]);
  irc_disconnect(session);
}
int main() {
  printf("Connected and setup.\n");
  irc_callbacks_t callbacks;
  memset(&callbacks, 0, sizeof(callbacks));
  callbacks.event_connect = event_connect;
  callbacks.event_numeric = event_numeric;
  callbacks.event_channel = event_channel;
  irc_session_t *session = irc_create_session(&callbacks);
  if (irc_connect(session, "irc.twitch.tv", 6667,
    "password", "username",
    "username", "username")) {
    return 1;
  }
  if (irc_run(session)) {
  }
  return 0;
}
Debug.js:

var spawn = require('child_process').spawn;
var irc = spawn('C:/irc/ConsoleApplication1.exe');

irc.stdout.on('data', function(data) {
  console.log(String(data));
});
irc.stderr.on('data', function(data) {
  console.log(String(data));
});
irc.on('error', function(error) {
  console.log(error);
});

那么,为什么不使用一个无数的IRC模块来完成NoDE.js,而只是放弃C++和子进程呢?在节点进程中你得到“连接和安装”消息,还是根本没有得到什么?这主要是为了学习目的,我知道我的方法不是最简单的方法。KyRISU我没有收到“连接和安装”消息,我根本没有收到任何东西。@莱纳斯,对于我来说,你的调试。JS使用C++ C++程序()来工作。你能运行我的代码并告诉我它是否按预期工作吗?我怀疑VisualStudio可能是某种原因造成的(我在Linux上,所以目前无法检查)。@kyrisu它确实按预期工作,该示例没有问题。