1# h2dtscpp工具
2
3## 简介
4
5h2dtscpp工具即NATIVE生成工具,该工具由C++语法解释器和代码生成器两部分组成。C++语法解释器解析用户输入的.h文件内容,通过C++语法解析,将文件内容分解为类、方法、入参、成员属性等元素;代码生成器根据从语法解析器得到的这些元素,转换为对应的typescript语法的接口、方法、参数代码,生成.ts文件内容;同时通过语法解析器得到的元素,生成.h文件对应的napi框架代码和接口调用测试代码。
6
7## 目录
8
9```
10├── napi_generator                               # NAPI框架代码生成工具
11│   ├── ...                                      # 其它文档
12│   ├── src
13│   │   ├── ...                                 
14│   │   ├── cli                                  # 命令行
15│   │   |   ├── h2dtscpp/src                     # 工具源码
16│   │   |   |   ├── src   
17│   │   |   |   |   ├── json                     # 生成框架模板
18│   │   |   |   |   ├── napiGen                  # 生成.cpp框架代码文件和.test.ets测试文件
19│   │   |   |   |   ├── tools                    # 公共模块
20│   │   |   |   |   ├── tsGen                    # 解析.h文件并生成.d.ts声明文件
21│   │   |   |   |   ├── main.js                  # 主程序入口
22│   │   |   |   ├── package.json                 # 打包配置文件
23│   │   |   ├── ...                              # 其它工具
24```
25
26## 约束
27
28系统:建议Windows 10
29
30## 使用方法
31
32### 使用对象
33
34应用Native开发者
35
36### 使用场景
37
38应用层引入C++三方库,需增加OpenHarmony应用层接口。
39
40### 工具输入
41
42.h接口文件,如 [cJSON测试三方库](https://gitee.com/openharmony/napi_generator/releases/tag/测试用资源) 的cJSON.h
43
44### 工具使用
45
46[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/src/cli/h2dtscpp/docs/usage/INSTRUCTION_ZH.md)
47
48### 工具输出
49
50输出dts声明文件、接口测试文件.test.ets、接口实现文件.cpp文件
51
52输出整体文件夹目录如下:
53
54![](./docs/figures/h2dtscpp_out_example.png)
55
56tsout文件夹下内容如下所示:
57
58![](./docs/figures/h2dtscpp_dtsout_example.png)
59
60testout文件夹下内容如下所示:
61
62![](./docs/figures/h2dtscpp_testout_example.png)
63
64cppout文件夹下内容(部分文件截图)如下所示:
65
66![](./docs/figures/h2dtscpp_cppout_example.png)
67
68## 工具开发说明
69
70[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/src/cli/h2dtscpp/docs/guide/DEVELOP_ZH.md)
71
72## 版本说明
73
74暂无
75
76## FAQ
77
78暂无
79
80## 参与贡献
81
82暂无
83
84## 相关仓
85
86暂无