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

Lazarus Pascal Discussion :

[0.9.26.2 XP - Linux] Importation classe C++ : h2pas ou pas ? [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut [0.9.26.2 XP - Linux] Importation classe C++ : h2pas ou pas ?
    Bonjour,

    J'essaie toujours d'utiliser du C++ proprement et "normalement" dans des programmes Lazarus. Pour pallier l'insuffisance de l'unit regEx.pas, je cherche à adapter s'il le faut ma bibliothèque (shared library ) libRegEx.dll (libRegEx.so) développée en C++. Habituellement appelée par des programmes développés en C++, j'utilise 'directement' ses classes (et ses méthodes). Mais dans ce cas, on utilise les entêtes.

    Est-il possible de faire cela en Lazarus (wrapped ?). Le h2pas sert-il (peut-il servir) à cela ? Et dans ce cas, faut-il changer quelque chose aux déclarations (et à la construction) d'une shared library usuelle ?

    Malgré mes efforts, j'avoue que j'en suis toujours au même point, faute à cette de documentation et d'exemple inutilisables.

    Pour limiter les réponses,
    • je ne vais pas donner le source de ma libRegEx mais pour maintenir une réciprocité normale, à partir d'un exemple simple, je peux montrer comment développer puis construire 'à la main' une shared library en C sous Nux et Windows, puis comment on l'appelle d'un programme Lazarus. Ceci n'est pas usuel chez moi car qu'il s'agisse de Delphi ou C/C++, je n'utilise presque jamais les forums et donc ne diffuse pas mes codes considérant que les livres disponibles sur le marché sont largement suffisants et que l'on peut produire de manière autonome.
    • je voudrais un simple exemple d'utilisation de h2pas qui fonctionne sur une toute petite shared library développée en C++ avec, à partir de Lazarus, appel de classe et d'une de ses méthodes dans l'un des 2 environnement cités

    Merci d'avance. Cordialement. Gilles
    Dernière modification par Invité ; 06/05/2010 à 10h01.

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Par défaut
    A mon avis h2pas ne prend en charge que le C pas le C++. Donc si ta bibliothèque est vraiment en C++ avec des classes et tout et tout tu vas devoir écrire un ensemble de fonctions C pour servir de pont entre le pascal et le C++. D'ailleurs je pense même que FreePascal ne peut s'interfacer qu'avec du C pure ou des fonction C++ déclarées "extern C".

    Si tu veux plus t'aide tu devrais poster ici l'interface de ta bibliothèque (le .h expurgé du code des fonctions) pour qu'on ait une idée de ce à quoi ça ressemble.

    Il y a aussi cette doc qui pourrait t'aider : ftp://ftp.freepascal.org/pub/fpc/doc...FreePascal.pdf.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Merci pour la réponse. J'ai rapidement parcouru le lien. C'est curieux, je ne "uses" pas cTypes pour utiliser mes fonctions en C depuis mes units Pascal mais dynlibs. Avec, je n'ai jamais rencontré de prob sous Nux et Windows mais visiblement ma méthode n'est pas orthodoxe. Pour C++, oui on utilise "extern C" mais je dois reconnaître que les librairies C++ sont appelées quasiment exclusivement par des programmes C++ (et non par Lazarus qui en général appelle des lib en C).

    Je vais bricoler encore un peu... avant de clore définitivement le sujet.

    Cordialement. Gilles
    Dernière modification par Invité ; 06/05/2010 à 13h25.

  4. #4
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Par défaut
    A ma connaissance il n'y a pas besoin d'utiliser dynlibs pour utiliser des bibliothèques partagées (c'est inutilement compliqué). En tous cas je n'en ai jamais eu besoin. Il me semble que le seul cas ou l'utilisation de dynlibs est indispensable c'est pour la mise en place d'un système de plugin.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Oui, on utilise dynlibs car

    • Un réflexe 'Delphi' : http://www.freepascal.org/docs-html/...s/index-5.html
    • Et un avantage (une nécessité) pour nous, lorsque nous accueillions (à l'imparfait* ) des stagiaires en Pascal : la protection de certaines de nos ressources Pascal (qui sont pour la plupart d'ailleurs des portages de Delphi) : avec dynlibs, on appelle des fonctions contenues dans des bibli dynamiques développées en Lazarus (bibli compilées donc source hors d'atteinte)



    * car Lazarus n'a plus "lieu de cité" chez nous sauf en dév. perso... et encore, ma perplexité grandit. Mais je vais tenir jusqu'à l'arrivée de Delphi2011, histoire de décider si je passe tout mon temps sur C++ et Java ou si "l'ancêtre" est une solution valable Windows/Linux même si j'en suis conscient Delphi "Linux" sera "wrappé" QT... ce qui changera évidemment mes anciennes habitudes de développeur Delphi. Mais pour avoir "goûté" et apprécié le couple QT4/C++, cela vaut bien une petite attente à mon avis.
    Cordialement. Gilles
    Dernière modification par Invité ; 06/05/2010 à 16h02.

  6. #6
    Membre émérite
    Avatar de chris37
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juillet 2007
    Messages
    378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 378
    Par défaut
    Mais pour avoir "goûté" et apprécié le couple QT4/C++, cela vaut bien une petite attente à mon avis.
    Mode Troll On

    He he Gilles je suis sur QtCréator depuis le début du mois et j'ai enfin retrouvé l'envie de programmer

    Mode Troll Off

    Je sors...

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

Discussions similaires

  1. Module UML : importer classes du JDK
    Par aurelman dans le forum NetBeans
    Réponses: 1
    Dernier message: 11/11/2007, 13h53
  2. question import classes
    Par Ayana dans le forum Langage
    Réponses: 8
    Dernier message: 23/10/2007, 23h10
  3. Importer classes dans tomcat
    Par lil_k123 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 17/08/2007, 10h43
  4. [Eclipse] importation classes visuelles NetBeans
    Par MarneusCalgarXP dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 01/09/2006, 00h53
  5. Importer .class
    Par mschoum dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 30/04/2005, 13h53

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