如何在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 (将#修改为@)