HarmonyOS Empty Ability工程调用C、C++代码

我目前创建的工程是Empty Ability,需要调用C、C++代码,请问怎么操作

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

HarmonyOS 的IDE调用C++的代码的,具体操作步骤,参考以下步骤:

1)新建Native项目

  • 项目会自动生成“src\main\cpp”文件夹
  • cpp文件夹下可以放cpp的源文件
  • CMakeLists.txt 是用来链接C侧和Arkts侧的
  • napi_init.cpp :自动生成的,里面有模块注册、模块导出等,决定要向ArkTS侧开发哪些接口

2)src\main\cpp”文件下创建“myMath”文件夹,添加MyMath.cpp、MyMath.h文件

//MyMath.h
#ifndef TEST006NATIVEORIGINAL_MYMATH_H
#define TEST006NATIVEORIGINAL_MYMATH_H

double Plus(double a,double b);

#endif //TEST006NATIVEORIGINAL_MYMATH_H
//MyMath.cpp
#include "MyMath.h"
double Plus(double a,double b){
    return a+b+40;
}

3)napi_init.cpp 中引用MyMath.h中的方法

//napi_init.cpp
#include "./myMath/MyMath.h"
...
static napi_value Add(napi_env env, napi_callback_info info)
{
...
double resSum = Plus(value1 ,value0);
...
}

4)CMakeLists.txt (其他地方不用动)

include_directories(${NATIVERENDER_ROOT_PATH}
${NATIVERENDER_ROOT_PATH}/include
  ./myMath)     #------->添加

add_library(entry SHARED napi_init.cpp
myMath/MyMath.cpp)    #------->添加

5)运行日志中可以看到“Test NAPI 2 + 3 = 45”

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 关于C++工程编译事项
35浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
436浏览 • 1回复 待解决
HarmonyOS 如何调用标准C++
493浏览 • 1回复 待解决
HarmonyOS 工程里ndk怎么指定c++版本
687浏览 • 1回复 待解决
ArkTS与C++互相直接调用
2324浏览 • 1回复 待解决
C++调用ArkTS 定义的方法
2078浏览 • 1回复 待解决
如何修改C++版本?C++支持情况?
1210浏览 • 1回复 待解决
HarmonyOS ArkTS与C/C++的交互
774浏览 • 1回复 待解决
HarmonyOS C++开发
45浏览 • 1回复 待解决
ArkTS调用C++类中的成员函数
1347浏览 • 1回复 待解决
通过Native 调用c++层实现文本绘制
1095浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人