18c339a94Sopenharmony_ci# h2dtscpp工具
28c339a94Sopenharmony_ci
38c339a94Sopenharmony_ci## 简介
48c339a94Sopenharmony_ci
58c339a94Sopenharmony_cih2dtscpp工具由C++语法解释器和代码生成器两部分组成。C++语法解释器解析用户输入的.h文件内容,通过C++语法解析,将文件内容分解为类、方法、入参、成员属性等元素;代码生成器根据从语法解析器得到的这些元素,转换为对应的typescript语法的接口、方法、参数代码,生成.ts文件内容;同时通过语法解析器得到的元素,生成.h文件对应的napi框架代码和接口调用测试代码。
68c339a94Sopenharmony_ci
78c339a94Sopenharmony_ci## 约束
88c339a94Sopenharmony_ci
98c339a94Sopenharmony_ci系统:建议Windows 10
108c339a94Sopenharmony_ci
118c339a94Sopenharmony_ci## 使用方法
128c339a94Sopenharmony_ci
138c339a94Sopenharmony_ci### 生成
148c339a94Sopenharmony_ci
158c339a94Sopenharmony_ci1.安装typescript:使用管理员身份在napi_generator/src/cli/h2dtscpp/src目录下执行命令:
168c339a94Sopenharmony_ci
178c339a94Sopenharmony_ci	npm i typescript
188c339a94Sopenharmony_ci
198c339a94Sopenharmony_ci2.安装stdio:使用管理员身份在napi_generator/src/cli/h2dtscpp/src目录下执行命令:
208c339a94Sopenharmony_ci
218c339a94Sopenharmony_ci	npm i stdio
228c339a94Sopenharmony_ci
238c339a94Sopenharmony_ci3.下载header_parser.exe文件:[header_parser.exe](https://gitee.com/openharmony/napi_generator/releases/tag/生成工具);选择 tool.rar下载并解压,将解压后的文件中的header_parser.exe拷贝到napi_generator/src/cli/h2dtscpp/src/src/tsGen目录下。
248c339a94Sopenharmony_ci
258c339a94Sopenharmony_ci4.将待转换的.h文件拷贝到napi_generator/src/cli/h2dtscpp/src/src下,如 [cJSON测试三方库](https://gitee.com/openharmony/napi_generator/releases/tag/测试用资源) 的cJSON.h268c339a94Sopenharmony_ci
278c339a94Sopenharmony_ci5.在napi_generator/src/cli/h2dtscpp/src/src执行以下命令:
288c339a94Sopenharmony_ci
298c339a94Sopenharmony_ci```
308c339a94Sopenharmony_cinode main.js -f cJSON.h
318c339a94Sopenharmony_ci```
328c339a94Sopenharmony_ci
338c339a94Sopenharmony_ci其中,参数详情如下:
348c339a94Sopenharmony_ci
358c339a94Sopenharmony_ci-f, 必选参数,待转换的.h文件;如cJSON.h368c339a94Sopenharmony_ci
378c339a94Sopenharmony_ci-o, 可选参数,生成路径,默认路径为.h文件所在路径;
388c339a94Sopenharmony_ci
398c339a94Sopenharmony_ci6.执行成功后在napi_generator/src/cli/h2dtscpp/src/src目录下生成以下文件夹
408c339a94Sopenharmony_ci
418c339a94Sopenharmony_ci![](./docs/figures/h2dtscpp_out_example.png)
428c339a94Sopenharmony_ci
438c339a94Sopenharmony_citsout文件夹下内容如下所示:
448c339a94Sopenharmony_ci
458c339a94Sopenharmony_ci![](./docs/figures/h2dtscpp_dtsout_example.png)
468c339a94Sopenharmony_ci
478c339a94Sopenharmony_citestout文件夹下内容如下所示:
488c339a94Sopenharmony_ci
498c339a94Sopenharmony_ci![](./docs/figures/h2dtscpp_testout_example.png)
508c339a94Sopenharmony_ci
518c339a94Sopenharmony_cicppout文件夹下内容(部分文件截图)如下所示:
528c339a94Sopenharmony_ci
538c339a94Sopenharmony_ci![](./docs/figures/h2dtscpp_cppout_example.png)
548c339a94Sopenharmony_ci
558c339a94Sopenharmony_ci### 测试
568c339a94Sopenharmony_ci
578c339a94Sopenharmony_ci查看生成代码是否能正确编译,点击下面链接查看:
588c339a94Sopenharmony_ci
598c339a94Sopenharmony_ci[工具使用说明](https://gitee.com/openharmony/napi_generator/tree/master/src/cli/h2dtscpp/docs/usage/INSTRUCTION_ZH.md)