Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Retourner aux forums || Retourner au forum Programmation.perl

Programmation.perl : perlxs : remonter une chaine

Posté par kesako () le 16 janvier 2007
bonjour,

je voudrais empaqueter une librairie c++ existante dans un module.

l'une des fonctions prend en argument un tableau de char prealablement alloué .

en deux mots:

char tab[128];

int res = ma_classe:: ma_fonction (tab) ;

apres l'appel tab contient une chaine.

en perl cela devrait donner :

 
my $extC = ma_classe->new( );
my $tab;
$extC ->ma_fonction (\$tab) ;
et dans ma_classe.xs :
MODULE = ma_classe		PACKAGE = ma_classe		
int
ma_classe::ma_fonction (p_msg)
                      SV * p_msg
                      PREINIT:
                        char msg [256]; 
                      CODE:
                          msg [0]='\0';
                          RETVAL = THIS ->ma_fonction ( msg);
                          printf("msg =%s\n", msg);
                          p_msg= newSVpv(msg , strlen(msg));
                      OUTPUT: 
                          RETVAL
                          p_msg
Le probleme est que $tab est toujours vide quoi que je fasse.

pourtant dans le module msg est bien repli par ma_fonction comme me le prouve le printf.

Où me suis-je trompé ?

Merci d'avance

> Lire le message (0 commentaire).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.perl