调整C++ 代码
This commit is contained in:
49
hmcalculate/src/main/cpp/napi_init.cpp
Normal file
49
hmcalculate/src/main/cpp/napi_init.cpp
Normal file
@@ -0,0 +1,49 @@
|
||||
#include "napi/native_api.h"
|
||||
#include "CalculateAdaptor.h"
|
||||
#include "js_native_api.h"
|
||||
|
||||
napi_value JS_Constructor(napi_env env, napi_callback_info info) {
|
||||
napi_value thisVar = nullptr;
|
||||
void *data = nullptr;
|
||||
napi_get_cb_info(env, info, nullptr, nullptr, &thisVar, &data);
|
||||
CalculateAdaptor *adaptor = new CalculateAdaptor(env, thisVar);
|
||||
napi_wrap(
|
||||
env, thisVar, adaptor,
|
||||
[](napi_env env, void *data, void *hint) {
|
||||
CalculateAdaptor *ada = (CalculateAdaptor *)data;
|
||||
delete ada;
|
||||
},
|
||||
nullptr, nullptr);
|
||||
|
||||
return thisVar;
|
||||
}
|
||||
|
||||
napi_value Init(napi_env env, napi_value exports)
|
||||
{
|
||||
const char className[] = "CalculateAdaptor";
|
||||
napi_property_descriptor desc[] = {{"add", nullptr, calculate_add, nullptr, nullptr, nullptr, napi_default, nullptr},
|
||||
{"getInfo", nullptr, calculate_getInfo, nullptr, nullptr, nullptr, napi_default, nullptr}};
|
||||
napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
|
||||
|
||||
napi_value result = nullptr;
|
||||
napi_define_class(env, className, sizeof(className), JS_Constructor, nullptr,
|
||||
sizeof(desc) / sizeof(desc[0]), desc, &result);
|
||||
|
||||
napi_set_named_property(env, exports, "CalculateAdaptor", result);
|
||||
return exports;
|
||||
}
|
||||
|
||||
static napi_module demoModule = {
|
||||
.nm_version = 1,
|
||||
.nm_flags = 0,
|
||||
.nm_filename = nullptr,
|
||||
.nm_register_func = Init,
|
||||
.nm_modname = "native_lib",
|
||||
.nm_priv = ((void*)0),
|
||||
.reserved = { 0 },
|
||||
};
|
||||
|
||||
extern "C" __attribute__((constructor)) void RegisterNatvie_libModule(void)
|
||||
{
|
||||
napi_module_register(&demoModule);
|
||||
}
|
||||
Reference in New Issue
Block a user