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 558c339a94Sopenharmony_ci 568c339a94Sopenharmony_citsout文件夹下内容如下所示: 578c339a94Sopenharmony_ci 588c339a94Sopenharmony_ci 598c339a94Sopenharmony_ci 608c339a94Sopenharmony_citestout文件夹下内容如下所示: 618c339a94Sopenharmony_ci 628c339a94Sopenharmony_ci 638c339a94Sopenharmony_ci 648c339a94Sopenharmony_cicppout文件夹下内容(部分文件截图)如下所示: 658c339a94Sopenharmony_ci 668c339a94Sopenharmony_ci 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暂无