C ライブラリをラップする Node.js 用の C++ モジュールを作成しているので、JavaScript から C ライブラリを使用できます。C ライブラリの関数の 1 つは、対応するヘッダー ファイルに含まれる列挙型の値を使用して、列挙型パラメーターを取ります。Node.js アプリケーションが値をハードコードする必要がないように、列挙型の値を 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.");
JS でLOGLEVEL_ERROR
使用できるように C++ から公開するにはどうすればよいですか? logger.ERROR
(私はJSでもOKですlogger.LOGLEVEL_ERROR
。)マクロを使用する古いNode.jsネイティブモジュールを見つけましたEXPORT_INT32
が、これはもう存在しないようです(私はNode.js 0.8.8を使用しています)。