我正在为包装C库的Node.js编写一个C++模块,因此我们可以使用JavaScript中的C库。 C库中的一个函数需要一个枚举参数,枚举值包含在相应的头文件中。我想从C++模块中将枚举值作为整数导出,以便Node.js应用程序不必硬编码该值。这里的基本思想是:从Node.js导出整数值C++模块
C:
typedef enum
{
LOGLEVEL_ERROR = 0,
LOGLEVEL_WARN,
LOGLEVEL_INFO
} log_level_t;
write_to_log(log_level_t level, char* message);
C++:
Logger::Write(int level, char* message)
{
write_to_log(level, message);
}
的Node.js:
// This is what I want:
logger.write(logger.ERROR, "Oh no! Something bad happened.");
如何暴露在C LOGLEVEL_ERROR
++这样我就可以使用logger.ERROR
in JS? (我甚至会在JS logger.LOGLEVEL_ERROR
确定。)我发现,使用宏EXPORT_INT32
,但这似乎并不存在了一个旧的Node.js本机模块(我使用Node.js的0.8.8)。
谢谢。我一直在使用V8Convert,但还没有看V8Juice,我会检查一下。虽然把值放在JS中可能会变成最简单的... – Zik