perl:integration_avec_les_autres_langages_xs
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| perl:integration_avec_les_autres_langages_xs [2009/03/15 01:14] – root | perl:integration_avec_les_autres_langages_xs [2013/03/13 11:14] (Version actuelle) – [h2xs] root | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== Intégration avec divers langages ====== | ||
| + | |||
| + | |||
| Références : | Références : | ||
| * //man perlxstut// | * //man perlxstut// | ||
| Ligne 26: | Ligne 29: | ||
| **XS** désigne une suite d' | **XS** désigne une suite d' | ||
| * vous possédez une interface C, normalement sous la forme d'un ou plusieurs fichiers //.h// contenant des prototypes de fonctions, ex : | * vous possédez une interface C, normalement sous la forme d'un ou plusieurs fichiers //.h// contenant des prototypes de fonctions, ex : | ||
| + | <code c> | ||
| void hello(); | void hello(); | ||
| int somme(int a, int b); | int somme(int a, int b); | ||
| float moyenne(int nb, int* valeurs); | float moyenne(int nb, int* valeurs); | ||
| + | </ | ||
| * vous désirez produire une interface Perl équivalente. Perl n' | * vous désirez produire une interface Perl équivalente. Perl n' | ||
| + | <code perl> | ||
| sub hello { ... }; | sub hello { ... }; | ||
| sub somme { my($a, $b) = @_; ...; return $val; } | sub somme { my($a, $b) = @_; ...; return $val; } | ||
| sub moyenne { my(@valeurs) = @_; ...; return $val; } | sub moyenne { my(@valeurs) = @_; ...; return $val; } | ||
| + | </ | ||
| * vous voulez vous assurer que le passage de Perl à C (pour l' | * vous voulez vous assurer que le passage de Perl à C (pour l' | ||
| * enfin vous voulez produire un module Perl qui se charge d' | * enfin vous voulez produire un module Perl qui se charge d' | ||
| - | |||
| ===== h2xs ===== | ===== h2xs ===== | ||
| L' | L' | ||
| + | <code c> | ||
| #include " | #include " | ||
| #include " | #include " | ||
| Ligne 54: | Ligne 59: | ||
| CODE: | CODE: | ||
| printf(" | printf(" | ||
| + | </ | ||
| De fait, il peut être compilé via la procédure standard de distribution des modules Perl : | De fait, il peut être compilé via la procédure standard de distribution des modules Perl : | ||
| Ligne 62: | Ligne 68: | ||
| * un module Perl qui déclare les symboles (fonctions, variables, etc) fournis par le module natif | * un module Perl qui déclare les symboles (fonctions, variables, etc) fournis par le module natif | ||
| * un module **natif** qui est une DLL qui sera chargée dynamiquement et étendra l' | * un module **natif** qui est une DLL qui sera chargée dynamiquement et étendra l' | ||
| - | |||
| ====== 3. In bed with Perl ====== | ====== 3. In bed with Perl ====== | ||
perl/integration_avec_les_autres_langages_xs.1237079680.txt.gz · Dernière modification : de root
