使用ctypes从python访问dll。。。

嗨,
我知道要从Python访问任何DLL,都应该使用ctype。到目前为止,我还没能让它工作(我尝试了这两个声明的初始化)。我认为的问题是DLL使用了大量的#Define和它自己的定制结构,我在ctype中找不到它们的定义。
我不知道如何准确地使用ctype,我的问题是合理的,还是我错过了真正重要的东西。另外,如果有人能指导我参考什么文件或书籍,那就太好了。
在一些论坛上,我也想到了用C/C++为Python构建自己的模块,这对我的显示算法来说是个好主意(这是我在C++代码中使用的)。

选择 | 换行 | 行号
  1.  
  2. #define important_parameter MODULE_NUM
  3. custom_struct *mystruct;
  4.  
  5. mythread(threadid,.. etc)
  6. {
  7.     custom_class::update_data_to_external_device(mystruct, ..);
  8. }
  9.  
  10. int main (void)
  11. {
  12.     custom_class::initialize(important_parameter, *custom_struct);
  13.     do
  14.     {
  15.         key = my_key_detect_func();
  16.         switch (key)
  17.         {
  18.             case 1:
  19.                 //update struct for condition 1;
  20.                 break;
  21.             case 2:
  22.                 //update struct for condition 2;
  23.          }
  24.     }while(key!=quit)
  25.     custom_class::shutdown(important_parameter, *custom_struct);
  26. }
  27.  

回答我的任何一个问题都会很棒。
感谢您提前回复

# 回答1


一个更有价值的解决方案是使用SWIG,这是一种软件开发工具,可以将用C和C++编写的程序与各种高级编程语言连接起来。SWIG与不同类型的目标语言一起使用,包括Perl、PHP、Python、TCL和Ruby等常见脚本语言。支持的语言列表还包括非脚本语言,如C#、Common Lisp(CLISP、Allegro CL、CFFI、UFFI)、D、GO语言、Java、Lua、moda-3、OCAML、Octave和R。此外,还支持几种解释和编译的方案实现(Guile、Mzplan/racket、Chicken)。
所以最终我用CPP编写了一段代码,并用SWIG进行了编译,APP运行得很完美。:)

标签: python

添加新评论