1. python 用关键字 ctypes

有三种导入dll的方式:

  • cdll(): dll函数以c方式导出
  • windll(): dll 函数以标准方式导出
  • oledll(): com 方式导出

如:

1 from ctypes import *
2 
3 msvcrt = cdll.msvcrt 
4 message_string = "hello world\n" 
5 msvcrt.printf("testing: %s", message_string)

调用c运行库的printf 函数。

2. c&c++数据类型和python数据类型的映射关系

python dll h python dll 函数_python

3. 引用传值

    byref()返回一个变量的指针,所以在调用的时候只需: function(byref(param));

4. struct 和unins

c中


1 struct beef_recipe 
 2 { 
 3     int amt_barley; 
 4     int amt_water; 
 5 }
 6 
 7 
 8 
 9 unin{ 
10      long barley_long; 
11      int barley_int; 
12      char barley_char[8]; 
13 } barley_amount;

python 中:


1 class beer_recipe(Structure): 
 2     _fields_ = [ 
 3     ("amt_barley", c_int), 
 4     ("amt_water", c_int) 
 5     ]
 6 
 7  class barley_amount(Union): 
 8     _fields = [ 
 9     ("barley_long", c_long), 
10     ("barley_int", c_int), 
11     ("barley_char", c_char*8), 
12     ]