2010-07-14 44 views
0

我想写一个DLL文件的包装,在这种情况下为Python。问题是参数类型不是C标准的。他们已经为其他东西打下了基础。typedef解决DLL包装

我有DLL文件的头文件...所以我可以手动跟踪原始标准C类型的参数类型是typedef'ined。但想要一个更系统的方式来做到这一点。我想知道是否有一个实用程序会评估头文件,或者如果你可以在类型定义的dll中的某处。

回答

0

我认为你正在寻找的工具是SWIG

SWIG是一个软件开发工具,连接写在C和C++的各种高级编程语言的节目。 SWIG与不同类型的语言一起使用,包括Perl,PHP,Python,Tcl和Ruby等通用脚本语言。支持的语言列表还包括非脚本语言,如C#,Common Lisp(CLISP,Allegro CL,CFFI,UFFI),Java,Lua,Modula-3,OCAML,Octave和R.还有一些解释和编译的Scheme实现Guile,MzScheme,Chicken)都支持。 SWIG最常用于创建高级解释或编译的编程环境,用户界面以及用于测试和原型化C/C++软件的工具。 SWIG也可以以XML和Lisp s表达式的形式导出它的分析树。 SWIG可以自由使用,分发和修改用于商业和非商业用途。

这确实假定您愿意使用DLL的标头。如果你想单独使用DLL,那么你有更多的工作要做。它可能会提供一个可用于分析类型的反射界面。否则,你陷入了一个痛苦的世界 - 或者反向设计DLL中的任何调试信息。

+1

如何设置VC++的某些指令与痛饮使模块 http://realmike.org/blog/2010/07/18/python-extensions-in-cpp-using-swig/#dll 加在module_wrap.c文件中,我将在 之前设置语句 #undef _DEBUG #include 2010-07-19 00:51:48