2013-05-29 4 views
0

Un étrange problème, je pense:ctypes python pur vs ctypes django

J'ai une bibliothèque C qui inverse un char *. Quand j'utilise des ctypes en python pur, j'obtiens la bonne solution. Cependant quand j'essaye le même code dans une vue de django j'obtiens une mauvaise réponse.

Python pur:

import sys 
from ctypes import * 
path = "library.so" 
lib = cdll.LoadLibrary(path) 
reverse = lib.reverse 
reverse.restype = c_char_p 

quand je l'utilise "inverse ('pepe')" Je reçois 'EPEP'

Avec django, avec le même code que je ne reçois que 'p'.

Une idée?

+2

Pourriez-vous nous donner plus d'informations sur ce que signifie "Avec django"? Peut-être que dans quel contexte django vous utilisez "reverse"? –

+0

Avec django implique l'utilisation de ce code dans une vue django. –

+1

Django utilise unicode. Fondamentalement, il place un octet NULL après chaque caractère dans une chaîne. Il se peut que library.so ne voie pas la chaîne correctement. –

Répondre