18c339a94Sopenharmony_ci# h2dtscpp工具
28c339a94Sopenharmony_ci
38c339a94Sopenharmony_ci## 简介
48c339a94Sopenharmony_ci
58c339a94Sopenharmony_cih2dtscpp工具即NATIVE生成工具,该工具由C++语法解释器和代码生成器两部分组成。C++语法解释器解析用户输入的.h文件内容,通过C++语法解析,将文件内容分解为类、方法、入参、成员属性等元素;代码生成器根据从语法解析器得到的这些元素,转换为对应的typescript语法的接口、方法、参数代码,生成.ts文件内容;同时通过语法解析器得到的元素,生成.h文件对应的napi框架代码和接口调用测试代码。
68c339a94Sopenharmony_ci
78c339a94Sopenharmony_ci## 目录
88c339a94Sopenharmony_ci
98c339a94Sopenharmony_ci```
108c339a94Sopenharmony_ci├── napi_generator                               # NAPI框架代码生成工具
118c339a94Sopenharmony_ci│   ├── ...                                      # 其它文档
128c339a94Sopenharmony_ci│   ├── src
138c339a94Sopenharmony_ci│   │   ├── ...                                 
148c339a94Sopenharmony_ci│   │   ├── cli                                  # 命令行
158c339a94Sopenharmony_ci│   │   |   ├── h2dtscpp/src                     # 工具源码
168c339a94Sopenharmony_ci│   │   |   |   ├── src   
178c339a94Sopenharmony_ci│   │   |   |   |   ├── json                     # 生成框架模板
188c339a94Sopenharmony_ci│   │   |   |   |   ├── napiGen                  # 生成.cpp框架代码文件和.test.ets测试文件
198c339a94Sopenharmony_ci│   │   |   |   |   ├── tools                    # 公共模块
208c339a94Sopenharmony_ci│   │   |   |   |   ├── tsGen                    # 解析.h文件并生成.d.ts声明文件
218c339a94Sopenharmony_ci│   │   |   |   |   ├── main.js                  # 主程序入口
228c339a94Sopenharmony_ci│   │   |   |   ├── package.json                 # 打包配置文件
238c339a94Sopenharmony_ci│   │   |   ├── ...                              # 其它工具
248c339a94Sopenharmony_ci```
258c339a94Sopenharmony_ci
268c339a94Sopenharmony_ci## 约束
278c339a94Sopenharmony_ci
288c339a94Sopenharmony_ci系统:建议Windows 10
298c339a94Sopenharmony_ci
308c339a94Sopenharmony_ci## 使用方法
318c339a94Sopenharmony_ci
328c339a94Sopenharmony_ci### 使用对象
338c339a94Sopenharmony_ci
348c339a94Sopenharmony_ci应用Native开发者
358c339a94Sopenharmony_ci
368c339a94Sopenharmony_ci### 使用场景
378c339a94Sopenharmony_ci
388c339a94Sopenharmony_ci应用层引入C++三方库,需增加OpenHarmony应用层接口。
398c339a94Sopenharmony_ci
408c339a94Sopenharmony_ci### 工具输入
418c339a94Sopenharmony_ci
428c339a94Sopenharmony_ci.h接口文件,如 [cJSON测试三方库](https://gitee.com/openharmony/napi_generator/releases/tag/测试用资源) 的cJSON.h
438c339a94Sopenharmony_ci
448c339a94Sopenharmony_ci### 工具使用
458c339a94Sopenharmony_ci
468c339a94Sopenharmony_ci[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/src/cli/h2dtscpp/docs/usage/INSTRUCTION_ZH.md)
478c339a94Sopenharmony_ci
488c339a94Sopenharmony_ci### 工具输出
498c339a94Sopenharmony_ci
508c339a94Sopenharmony_ci输出dts声明文件、接口测试文件.test.ets、接口实现文件.cpp文件
518c339a94Sopenharmony_ci
528c339a94Sopenharmony_ci输出整体文件夹目录如下:
538c339a94Sopenharmony_ci
548c339a94Sopenharmony_ci![](./docs/figures/h2dtscpp_out_example.png)
558c339a94Sopenharmony_ci
568c339a94Sopenharmony_citsout文件夹下内容如下所示:
578c339a94Sopenharmony_ci
588c339a94Sopenharmony_ci![](./docs/figures/h2dtscpp_dtsout_example.png)
598c339a94Sopenharmony_ci
608c339a94Sopenharmony_citestout文件夹下内容如下所示:
618c339a94Sopenharmony_ci
628c339a94Sopenharmony_ci![](./docs/figures/h2dtscpp_testout_example.png)
638c339a94Sopenharmony_ci
648c339a94Sopenharmony_cicppout文件夹下内容(部分文件截图)如下所示:
658c339a94Sopenharmony_ci
668c339a94Sopenharmony_ci![](./docs/figures/h2dtscpp_cppout_example.png)
678c339a94Sopenharmony_ci
688c339a94Sopenharmony_ci## 工具开发说明
698c339a94Sopenharmony_ci
708c339a94Sopenharmony_ci[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/src/cli/h2dtscpp/docs/guide/DEVELOP_ZH.md)
718c339a94Sopenharmony_ci
728c339a94Sopenharmony_ci## 版本说明
738c339a94Sopenharmony_ci
748c339a94Sopenharmony_ci暂无
758c339a94Sopenharmony_ci
768c339a94Sopenharmony_ci## FAQ
778c339a94Sopenharmony_ci
788c339a94Sopenharmony_ci暂无
798c339a94Sopenharmony_ci
808c339a94Sopenharmony_ci## 参与贡献
818c339a94Sopenharmony_ci
828c339a94Sopenharmony_ci暂无
838c339a94Sopenharmony_ci
848c339a94Sopenharmony_ci## 相关仓
858c339a94Sopenharmony_ci
868c339a94Sopenharmony_ci暂无