давайте предположим следующую функцию
napi_value GeoToSeqnum(napi_env env, const napi_callback_info info) {
napi_status status;
size_t argc = 1;
napi_value argv[1];
status = napi_get_cb_info(env, info, &argc, argv, nullptr, nullptr);
assert(status == napi_ok);
napi_value cb = argv[2];
// if (!argv[0].IsNumber() || !argv[1].IsNumber() ){
// napi_throw_error(env,0, "Number expected");
// }
uint64_t out_seqnum=10;
napi_value seqnum[1];
status = napi_create_int64(env,out_seqnum, &seqnum);
assert(status == napi_ok);
napi_value global;
status = napi_get_global(env, &global);
assert(status == napi_ok);
napi_value result;
status = napi_call_function(env, global, cb, 1, seqnum, &result);
assert(status == napi_ok);
return nullptr;
}
эта функция возвращает следующий результат
var addon = require('bindings')('dggridjs');
// const myaddon = require('./addon');
console.log(addon);
addon.GeoToSeqnum(0,0,function(seqnumber){
console.log(seqnumber[0]); // must return 10
});
> type sizes: big int: 64 bits / big double: 64 bits
У меня две проблемы, прежде всего, если я добавлю следующую часть в код это не может скомпилировать. Я хочу знать, как я могу проверить тип ввода
if (!argv[0].IsNumber() || !argv[1].IsNumber() ){
napi_throw_error(env,0, "Number expected");
}
==> compile error :error C2228: left of '.IsNumber' must have class/struct/union
, и моя вторая проблема с выводом. Кажется, это возвращает тип вывода, который является правильным, но мне нужно, чтобы он возвращал число. Я запутался в использовании напи функций здесь. Буду признателен за вашу помощь. Спасибо