2008-12-17 124 views
8

我有一个包含#define语句,枚举和结构的C++头文件。我曾尝试使用随Python提供的h2py.py脚本无效(除了给我转换的#defines外)。任何帮助将不胜感激。将C++头文件转换为Python

+0

你想实现什么? – 2008-12-17 11:35:46

回答

11

我不知道h2py,但你可能想看'ctypes'和'ctypeslib'。 ctypes包含在python 2.5+中,目标是创建与c-structs的二进制兼容性。

如果您添加ctypeslib,您会得到一个名为codegen的子工具,它具有'h2xml.py'脚本和'xml2py.py',它们的组合将自动生成您正在使用的Python代码从C++头文件寻找。

ctypeslib:http://pypi.python.org/pypi/ctypeslib/0.5.4a

h2xml.py将需要另外一个工具叫做gccxml:http://www.gccxml.org/HTML/Index.html

,最好检查(通过CVS)的最新版本gccxml,并建立它自己(比实际做说起来容易)。预包装版本是旧的。

+1

我走下这个兔子洞,尝试使用CVS获得gccxml。在Windows上几乎不可能。这是一个更好的方法。 http://stackoverflow.com/questions/3840268/where-to-get-compiled-version-of-gccxml-on-windows。或者直接链接到这个项目:http://sourceforge.net/projects/ctypes/files/gccxml/ – phyatt 2012-09-15 00:20:39

1

从我所知道的,h2py.py不是用来转换除#define宏之外的任何东西。我确实跑过了cppheaderparser,这可能值得一看。

-1

你从哪里得到h2py与结构或枚举有什么关系的想法?

从源

# Read #define's and translate to Python code. 
# Handle #include statements. 
# Handle #define macros with one argument. 

词语“枚举”和“结构”永远不会出现在模块中。