vnpy/binding/generator/README.MD
2019-01-23 03:41:03 -04:00

49 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# autocxxpy
## 项目主旨
这个项目意在分析C++头文件并且生成一个对应的pyd文件以便python调用。
作为vnpy的一个代码生成工具目前主要用来生成vnpy.binding的代码以便vnpy调用C++的东西。
## 特点
* 可以从头文件以及相应的依赖库直接生pyd文件对应的代码。
* 可以在C++层自定义任何函数的转化细节
* 精准的分析基于clang进行语法分析不会因为代码格式而出现分析失误。
## 可以做到哪些东西
目前可以正确分析C++的以下元素:
全局域:
define
enum
class/struct
functions
typedef
class:
data member(variable)
method(functions)
destructor
## 分析正确率
基于CLang编译器分析的正确率取决于clang。
## 转化细节
请看[converts.md](doc/converts.md)
## 如何使用
在使用之前,先下载[clang]。如果需要其他版本的CLang[请看这里](http://releases.llvm.org/download.html)。
安装好clang之后将所需的库复制至/vnpy/binding/generator/目录下。
在Windows下所需的库是libclang.dll。Linux下则为libclang.so。
如果想为类ctp接口生成代码请看[ctp.md](doc/ctp.md)
如果想为新接口生成代码,请看[converts.md](doc/converts.md)
## 以后会增加哪些支持
增加什么的分析主要看以后遇到哪些接口。
若目前的生成器能无法分析所遇到接口的所有元素,那么肯定会增加新功能。
[clang]:http://releases.llvm.org/7.0.1/LLVM-7.0.1-win64.exe