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

Langage Perl Discussion :

appel d'une function C/C++ à partir de perl


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Points : 9
    Points
    9
    Par défaut appel d'une function C/C++ à partir de perl
    Salut,
    j'ai compilé une function C/C++
    Comment est ce que je doit l'appeler à partir de perl
    dison que j'ai le function suivant en C/C++

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    *char func(char *ptr, int len) {
        ...
    return str;}
    je veux l'appeler à partir de perl

  2. #2
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Points : 1 491
    Points
    1 491
    Par défaut
    regarde les modules inline::c et Inline::CPP
    Cela demande du courage d'en tirer du plaisir
    Quand on n'a qu'un marteau, tous les problèmes ressemblent à un clou

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Âge : 61

    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Points : 44
    Points
    44
    Par défaut
    Dans un environnement Windows, tu peux utiliser Win32::API.

    Ça permet d'aller 'chercher' des fonctions dans une dll (système ou fabrication maison) puis de les exécuter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    sub fnImportFunction
    {
    	my $function_ref = shift;
    	my $strFuncName = shift;
    	my $strParamString = shift;
    	my $strReturnString = shift;
     
    	if (!defined(&{$function_ref}))
    	{
    		my $bOK = Win32::API->Import( 
    				'popeye_dll.dll', 
    				$strFuncName, 
    				$strParamString,
    				$strReturnString);
     
    		if ( $bOK == 0 )
    		{
    			Log( -1, "Error importing $strFuncName : $^E" );			
    		}
    		else
    		{
    			Log( 2, "$strFuncName successfully imported" );		
    		}
    	}
    }
     
    # puis plus loin, dans le code :
     
    # Import 'transfert' function	from C++ dll
    	# Params :
    	#  IN :
    	#        1 string to write datas 'P'
    	#  Returns
    	#        1 long 'N'
    	#	
    	&fnImportFunction(\&fnSetString,'fnSetString','P','N');
     
    # Et encore un peu plus loin, pour utiliser fnSetString
     
    &fnSetString("$strVal");
    Du coté C/C++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    POPEYE_DLL_API long __stdcall fnSetString(char *sVal)
    {
    	COPYSTR(g_sRetVal,sVal);
    	g_strRetVal = sVal;
     
    	return (strlen(sVal) < LGSTRING - 1)?1L:0L;
    }
     
    // POPEYE_DLL_API est défini par define POPEYE_DLL_API __declspec(dllexport) pour générer la dll
     
    // Attention aux options de compilation, il faut 'Alignement des membres de la structure' règlé à 1 octet (/Zp1 avec Visual).

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/06/2009, 21h22
  2. appel d'une page JSP a partir une servlet
    Par sniper_marra dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/09/2008, 00h45
  3. Appel d'une function
    Par Montor dans le forum Langage
    Réponses: 11
    Dernier message: 30/08/2008, 13h01
  4. Appel d'une fonction .NET a partir de JAVA
    Par cdekapto dans le forum Langage
    Réponses: 1
    Dernier message: 13/02/2008, 11h36
  5. Réponses: 7
    Dernier message: 16/12/2005, 10h15

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