IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaçage autre langage Python Discussion :

Ctypes - control sur le int


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 114
    Points : 129
    Points
    129
    Par défaut Ctypes - control sur le int
    Bonjour

    J'ai une fonction C wrappé en python à l'aide des ctypes, qui a entre autre un entier comme argument, un unsigned int32 pour être précis. J'ai un soucis un peu récurrent : le type int en python s'adapte largement à tous les cas, mais quand j'arrive à l'appel de ce cette fonction, j'ai une exception : un argument de la fonction est hors limite.

    Quelle est la manière la plus pythonique de tester cet argument juste avant l'appel pour éventuellement adopter un mode dégradé ?

    Est-ce :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if value<0 and value> 4294967295:
         traitement ...
    ou :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    try:
       valueC = ctypes.c_uint(value)
    except:
      ...
    Ou une autre méthode que je ne connais pas encore ?

    Cordialement
    Emmanuel

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 439
    Points : 37 030
    Points
    37 030
    Par défaut
    Salut,

    A partir de la 3.1, la méthode .bit_length retourne le nombre de bits nécessaire pour représenter le nombre en "binaire".
    Voir la documentation, pour gérer le signe (et le code pour faire fonctionner çà en V2).
    En tous cas éviter "valueC = ctypes.c_uint(value)" lorsque value est >> çà va gentiment essayer de transformer la chose en ulong puis çà tronque en silence.
    - W

Discussions similaires

  1. [C#2.0]location d'un control sur une fenetre
    Par chnew dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/04/2006, 17h15
  2. Controle sur 1 col. dont l'existence est soumise à condition
    Par HOUDEBINE dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/02/2006, 08h51
  3. [VB]Control sur une msflexgrid ?
    Par Shypster dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/01/2006, 15h29
  4. [JSP/WebSphere] Boucle de controle sur un FTP
    Par benben13 dans le forum Websphere
    Réponses: 10
    Dernier message: 30/08/2005, 17h18
  5. affichage de controles sur un splash screen
    Par shrek dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 20h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo