Le module ctypes de Python

Le module ctypes permet d’interagir avec des librairies écrites en langage C.

Nous utiliserons dans la suite le module ctypes pour notre debugger.

Le module ctypes fournit des méthodes pour charger des librairies écrites en C et appeler les fonctions de ces librairies, des types de données compatibles avec le langage C pour passer et récupérer des variables avec ces fonctions.

Le module ctypes est disponible à partir de Python 2.5 et supérieur.

Le module ctypes exporte un objet cdll qui permet de charger une librairie. Dans l’environnement Windows, nous disposons en plus des objets windll et oledll.

L’objet cdll fournit une méthode LoadLibrary() qui permet de charger une librairie dynamique.


From ctypes import * 
cdll.LoadLibrary("libc6.so.6") # Linux 
print windll.kernel32 # windows 
print cdll.msvcrt # windows 
libc=cdll.msvcrt
 

Une fois que nous avons chargé une librairie via la méthode LoadLibrary(), nous l’affectons à un objet qui va permettre d’appeler les fonctions définies par la librairie.

Cet objet agit en wrapper en permettant d’accéder aux fonctions de la librairie en passant par des pointeurs.


print windll.kernel32.GetModuleHandleA # Affiche <_FuncPtr object 
at 0x...> 
print hex(windll.kernel32.GetModuleHandleA(None)) # appel de la 
fonction GetModule HandleA de la windll 
 

Le module ctypes fournit des types de données compatibles avec le langage...

couv_EP2HAFO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Introduction
Suivant
Première approche