Node.js – 产生的EXE没有输出

我仍然在学习C ++,刚开始使用节点,我创build了一个C ++的IRC客户端用于在聊天中接收消息,然后我想通过使用衍生的subprocess的streamstdout从Node.js获取这些。

但是,我没有收到exe的输出。 我唯一一次从Node.js脚本中得到exe的输出是一次结束永久循环(irc_run),但是我认为这将不起作用,因为它是asynchronous产生的?

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

使用的库: http : //sourceforge.net/projects/libircclient/

Consoleapplication1.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); });