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 :PyString_AS_STRING


Sujet :

C++

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 53
    Points : 106
    Points
    106
    Par défaut C++ - Python :PyString_AS_STRING
    Bonjour,

    Je dois utiliser python via un code C++.
    J ai un script Python que j execute via du C++, et qui me retourne une string.
    Seulement voila , les 8 premiers caracteres sont coupes.

    Mon Script Python:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    def testDVS(Parameter1=False,Parameter2="HELLO"):
        print Parameter1
        resXML = "Hello,Allons enfant de la patrie, le jour de gloire est arrive ... Mais il sont ou, mais ils sont ou"
        return resXML
    Mon Code C++:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
           std::string execute = string(CodePython: voir plus haut)
    	PyRun_SimpleString(execute.c_str());
            PyObject * module = PyImport_AddModule("__main__");
    	PyObject * dictionary = PyModule_GetDict(module);   // borrowed reference
    	PyObject * result = PyDict_GetItemString(dictionary, strPythonResult.c_str());
    	PyString_Check(result);
            char* resultFromPy = PyString_AS_STRING(result);
    	Py_ssize_t sizeTmp = PyString_Size(result);//OK
    	std::string res(resultFromPy); //NOK manque 8 premiers caractere
    Si quelqu un a une idee ?

  2. #2
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 53
    Points : 106
    Points
    106
    Par défaut Solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    PyObject* result = PyDict_GetItemString(dictionary, "result");// borrowed reference
    PyObject* resultStringPy = PyObject_Repr(result);
    resultXML = std::string(PyString_AsString(resultStringPy));
    Py_DECREF(resultStringPy);

+ 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, 16h06
  2. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 13h32
  3. module .so pour python... ?!
    Par totoetlititi dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 09/03/2004, 15h51
  4. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 15h59

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