3

嗨,我是 C++ 中的菜鸟,试图修改现有的本机节点模块。

我正在尝试在模块内添加 couts 以打印我认为对我有用的信息。

NAN_METHOD(Context2d::SetFillRule){
  Context2d *context = Nan::ObjectWrap::Unwrap<Context2d>(info.This());
  cairo_t *ctx = context->context();
  String::Utf8Value str(info[0]);
  cout << "set method called";
  ...
}

以前的方法有效,但从未显示 cout。在 node-gyp 构建期间是否丢失/显示?我做错了什么吗?有没有办法实现它?

4

4 回答 4

2

我正在尝试学习 N-API 为 nodejs 项目制作插件,但遇到了同样的问题。添加可#include <iostream>std::cout我的代码中使用。node path_to_file.js当我通过调用任何 nodejs 项目来运行我的代码时,它成功地将我的数据打印到控制台。我知道您正在使用 NAN,并且可能很久以前就已经克服了这个问题,但我觉得给出这个答案很重要,因为这出现在我的搜索结果中,并且对于像我这样的初学者来说没有一个好的答案。

于 2018-01-24T15:29:48.810 回答
1

我建议将其写入日志文件(重定向 std::cout 很痛苦)。

std::ofstream logFile("logfile.txt");
logFile << "set method called";
于 2015-12-17T15:53:08.600 回答
0

仅当cout << "some text"您直接从命令行启动二进制文件时才会起作用。我认为情况并非如此,因为您似乎在节点内部使用它。所以你应该从节点库中找到一些日志输出方法。

于 2015-12-17T15:42:44.620 回答
0

如果它在 Windows 中,您可以尝试创建另一个控制台窗口。然后将您的上下文绑定到该窗口并将打印重定向到那里。

或写入文件。

于 2015-12-17T15:46:59.847 回答