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.28.2] Utilisation bibliothèque dynamique [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.28.2] Utilisation bibliothèque dynamique
    Bonjour,

    Pour maintenir un programme, j'ai dû faire un petit retour par Lazarus que j'ai récemment quitté (0.9.26.2). J'appelle des bibliothèques dynamiques .dll ou .so. Ces bibliothèques ont été réalisées soit avec Lazarus 0.9.26.2 soit en C++. Appelées par un programme Lazarus 0.9.26.2, RAS. Appelées par le même programme compilé en Lazarus 0.9.28.2, un bug apparaît.

    Exemple : une des fonctions de la bibliothèque dynamique renvoie un entier aléatoire. Appelée 500 fois dans une boucle par le programme principal compilé en Lazarus 0.9.26.2, cela se passe bien. En Lazarus 0.9.28.2 [XP], j'ai un plantage systématique au 20ème appel. ???? Le debugger n'indique rien.

    Problème déjà rencontré par quelqu'un(e) ?

    Cordialement. Gilles
    Dernière modification par Invité ; 21/01/2010 à 14h41.

  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
    La version 0.9.28.2 me détecte parfois des exceptions dans des programmes qui fonctionnent bien hors de l'IDE ou dans l'IDE d'une 0.9.26. Mais ce n'est pas systématique comme toi.

    Peut être un problème de convention d'appel ? Tu n'aurais pas oublié un 'cdecl' quelque part ?

    Si c'est reproductible tu peux peut être poster un code minimal qui produit le bug.

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

    Problème contourné en changeant le code d'appel de la fonction externe. J'ai fait un test de 100 000 appels sans problème avec la dll et la so d'origine. Bizarre. Cela semble -sans aucune certitude- provenir de dynlibs/windows.

    Par contre, le problème de dynlibs.UnloadLibrary(Handle) référencé depuis des lustres n'est toujours pas réglé sous Windows : Il faut utiliser dynlibs.UnloadLibrary(NilHandle) sous peine d'obtenir "une boucle sans fin". Ceci évidemment si la librairie a été chargée avec dynlibs.LoadLibrary (On peut l'ouvrir aussi sous Windows par windows.LoadLibrary...)

    Cordialement. Gilles
    Dernière modification par Invité ; 05/02/2010 à 11h26.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/01/2014, 17h39
  2. [PEAR] Utiliser bibliothèque dynamique
    Par laloune dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 16/09/2013, 10h13
  3. Question sur les bibliothques dynamiques
    Par inh40 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 11/04/2007, 15h16
  4. Chargement bibliothèques dynamiques
    Par Snark dans le forum C++
    Réponses: 3
    Dernier message: 15/12/2006, 15h49
  5. Problème avec la "Gestion des bibliothèques dynamiques"
    Par GoustiFruit dans le forum Delphi
    Réponses: 15
    Dernier message: 31/05/2006, 09h54

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