1 Star 0 Fork 16

Leechy/ani_cookbook

forked from Xingwa/ani_cookbook 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
ani_arraybuffer.cpp 1.42 KB
一键复制 编辑 原始数据 按行查看 历史
ironrain 提交于 2025-03-21 09:39 +08:00 . Fix sub-ETSGLOBAL-problem
#include <ani.h>
#include <array>
#include <iostream>
#include <vector>
// 这个类型不是ani_array
static void handleData(ani_env *env, ani_arraybuffer arraybuffer) // native函数
{
void* resultData;
ani_size resultSize;
env->ArrayBuffer_GetInfo(arraybuffer, &resultData, & resultSize);
// 注意解指针uint32_t*
std::cout << *static_cast<uint32_t*>(resultData) << std::endl;
}
ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result)
{
ani_env *env;
if (ANI_OK != vm->GetEnv(ANI_VERSION_1, &env)) {
std::cerr << "Unsupported ANI_VERSION_1" << std::endl;
return ANI_ERROR;
}
static const char *moduleName = "Lani_arraybuffer;";
ani_module module;
if (ANI_OK != env->FindModule(moduleName, &module)) {
std::cerr << "Not found '" << moduleName << "'" << std::endl;
return ANI_ERROR;
}
std::array methods = {
ani_native_function {"handleData", nullptr, reinterpret_cast<void *>(handleData)},
};
std::cout << "Start bind native methods to '" << moduleName << "'" << std::endl;
if (ANI_OK != env->Module_BindNativeFunctions(module, methods.data(), methods.size())) {
std::cerr << "Cannot bind native methods to '" << moduleName << "'" << std::endl;
return ANI_ERROR;
};
std::cout << "Finish bind native methods to '" << moduleName << "'" << std::endl;
*result = ANI_VERSION_1;
return ANI_OK;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/LeechyLiang/ani_cookbook.git
git@gitee.com:LeechyLiang/ani_cookbook.git
LeechyLiang
ani_cookbook
ani_cookbook
master

搜索帮助