2010-07-14 53 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