微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在node-addon-api中从c ++返回float32数组?

如何解决如何在node-addon-api中从c ++返回float32数组?

我正在尝试使用 node-addon-api 在 node.js 中运行 c++。 我读过一篇来自媒体的精心编写的文章。 但是我想将一个浮点数传递给我的一个函数,并将一个浮点数组传递给另一个函数。 我想从他们两个返回一个浮点数组。 函数示例 (greeting.cpp)

#include <iostream>
#include <string>
#include <cmath>
#include "greeting.h"

float* helloUser( float name ) {
  float* result = new float[3];
  result[0] = 1;
  result[1] = 2;
  result[2] = name;
  return result;
}

以及带有模块本机实现的 index.cpp 代码

#include <napi.h>
#include <string>
#include "greeting.h"

Napi::Float32Array greetHello(const Napi::CallbackInfo& info) {
    Napi::Env env = info.Env();

    float user = (float) info[0].ToNumber();
    float* result = helloUser( user );

    return Napi::Float32Array::New(env,result);
}

Napi::Object Init(Napi::Env env,Napi::Object exports) {

    exports.Set(
        Napi::String::New(env,"greetHello"),// property name => "greetHello"
        Napi::Function::New(env,greetHello) // property value => `greetHello` function
    );

    return exports;
}

NODE_API_MODULE(greet,Init)

问题是,Napi::Float32Array 不起作用,我试过 Napi::TypedArrayOf<float>,它也不起作用。我不太喜欢编写模块。 我只希望我在 node 中运行的纯 C++ 代码将其结果发送到前端。 我尝试使用 Napi::Number 接受和返回浮点数,它工作正常。 但我不知道如何让它开始使用数组。 任何帮助表示赞赏。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。