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

C++ Discussion :

C++ Python et GetFileVersionInfoSize


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Février 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 53
    Par défaut C++ Python et GetFileVersionInfoSize
    Bonjour a tous,

    Voila mon petit probleme:
    Depuis du Python j appelle une lib C++.
    Dans cette lib C++ on a unappel comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    WORD handle;
    std::string m_fileName("C:\Python26\python.exe");
    DWORD versionSize = GetFileVersionInfoSize( (LPCWSTR)(&m_fileName[0]), &handle );
    if ( !versionSize )
    	Throw ("BAD");
    Comme vous pouvez vous en doutez je ne peux pas modifier la lib C++ et je ne veux pas passer dans le Throw.

    Vous avez une idee pour recuperer un versionSize different de 0 sur python.exe ?

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Ce code est un peu pourri et je ne suis pas surpris qu'il ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::string m_fileName("C:\Python26\python.exe");
    En C comme en C++, il faut déspécialiser le caractère backslash (\) en le doublant lorsque c'est un séparateur de répertoire.
    La bonne syntaxe est : C:\\Python26\\python.exe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string m_fileName("peu importe");
    DWORD versionSize = GetFileVersionInfoSize( (LPCWSTR)(&m_fileName[0]), &handle );
    Ce code est un non sens car il masque un warning du compilateur qui signale une erreur de compréhension du développeur.

    std::string est une string MBCS qui est castée (à la sauvage) en string Unicode, hors ce n'est pas du tout la même chose. De plus, la bonne manière pour récupérer le contenu d'une string, c'est avec la fonction c_str(). Essaye ceci plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::wstring m_fileName(L"peu importe");
    DWORD versionSize = GetFileVersionInfoSize(m_fileName.c_str(), &handle );
    Et si tu ne peux pas changer le code de ta librairie, change de librairie, cela t'évitera d'autres déboires.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre actif
    Inscrit en
    Février 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 53
    Par défaut
    Merci de me dire que le code de la lib C++ est pourrie mais je le savais deja.

    Le pb vient du fait que python.exe ne contient pas les info windows.
    En utilisant pythonWin, l exe a toute les info demandes pas la lib C++.
    Donc tout marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [langage] traduction d'un fonction python en perl
    Par ay_pepito dans le forum Langage
    Réponses: 3
    Dernier message: 04/12/2007, 15h06
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 12h32
  3. module .so pour python... ?!
    Par totoetlititi dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 09/03/2004, 14h51
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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