FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Bataille navale SM
Pluseurs DLL simultanément Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
Pluseurs DLL simultanément Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
Pluseurs DLL simultanément Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Pluseurs DLL simultanément Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Pluseurs DLL simultanément Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Pluseurs DLL simultanément Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Pluseurs DLL simultanément Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Pluseurs DLL simultanément Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Pluseurs DLL simultanément Emptypar papydall Dim 21 Avr 2024 - 23:30

» Form
Pluseurs DLL simultanément Emptypar leclode Dim 21 Avr 2024 - 18:09

» trop de fichiers en cours
Pluseurs DLL simultanément Emptypar Marc Dim 21 Avr 2024 - 2:41

» 2D_fill_color(résolu)
Pluseurs DLL simultanément Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Pluseurs DLL simultanément Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Pluseurs DLL simultanément Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Pluseurs DLL simultanément Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le deal à ne pas rater :
Pokémon EV06 : où acheter le Bundle Lot 6 Boosters Mascarade ...
Voir le deal

 

 Pluseurs DLL simultanément

Aller en bas 
AuteurMessage
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Pluseurs DLL simultanément Empty
MessageSujet: Pluseurs DLL simultanément   Pluseurs DLL simultanément EmptyJeu 29 Juil 2010 - 0:21

Maintenant que je travaille de façon intensive avec les DLL, je constate qu'il est assez lourd de charger et décharger les DLL chaque fois qu'on en a besoin. En effet, je passe de ma KGF.dll à d'autres DLL que je suis en train d'écrire, puis à user32.dll et d'autres DLL du système Windows, etc.

Est-ce qu'on pourrait étendre les instructions DLL_on et DLL_off de sorte à pouvoir charger plusieurs DLL ? DLL_on pourrait accepter de charger une autre DLL même si une DLL est déjà chargée, et DLL_off pourrait recevoir un paramètre avec le nom de la DLL à décharger.

Je pense que les DLL_callx trouveront automatiquement le bon lien; si ce n'est pas le cas, DLL_on pourrait retourner un genre de handle qu'on pourrait passer à DLL_off et aux DLL_callx (en paramètre supplémentaire) pour faire le lien vers la bonne DLL...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Pluseurs DLL simultanément Empty
MessageSujet: Re: Pluseurs DLL simultanément   Pluseurs DLL simultanément EmptyJeu 29 Juil 2010 - 21:27

Je fais suite à mon post précédent.

J'ai fait une DLL qui contient deux fonctions: une pour charger dynamiquement une DLL dont je spécifie le chemin, et l'autre pour décharger une DLL chargée par ce moyen.

Je l'ai testé avec un programme Panoramic: ça marche parfaitement, je peux charger dynamiquement plusieurs DLL et les décharger à volonté.

Le problème, c'est que je ne peux appeler aucune des fonctions de ces DLL dynamiques. Seule les fonctions de la DLL chargée par DLL_on sont accessibles (et en occurence, c'est ma DLL utilisée pour charger les autres).

Est-ce que Panoramic teste si la fonction demandée est dans la DLL chargée par DLL_on ? Si oui, pourrait-on avoir un moyen de désactiver ce test, par exemple avec une directive compilateur du type
#DLL_FUNCTION_CHECK ON/OFF
ou une commande équivalente ? Car avec cet apport, j'aurais la solution au problème soulevé dans mon post précédent: je pourrais utiliser simultanément les DLL dont j'ai besoin.

Je sais bien qu'en cas d'erreur, cela peut conduire à un plantage du programme. Mais d'abord, cela peut arriver n'importe quand dans une DLL (en phase de mise au point), et ensuite, rien n'oblige un programmeur à utiliser cette directive (ou commande).

Ce message s'adresse bien sûr à Jack: j'espère que tu pourras trouver une solution à ce problème !

EDIT

La nuit a porté conseil. J'ai étudié plus avant et je me suis rendu compte que ce que je demandais, n'est pas réalisable tel quel, vu la façon à utiliser pour appeler une fonction par son nom dans une DLL chargée dynamiquement.

Il faut en effet connaître le nom de la DLL si elle n'est pas encore chargée, ou le handle de la DLL si elle a déjà été chargée. La solution consisterait peut-être en une nouvelle commande du type
DLL_target_is handle% : ' tous les DLL_xxx agiront sur cette DLL ensuite
ou
DLL_target_is nom_dll$ : ' idem, avec chargement si nécessaire
La deuxième version sera peut-être la plus réaliste.

Dans cette perspective, il serait peut-être intéressant de laisser DLL_on charger une DLL même si une autre a déjà ete chargée. DLL_on exécuterait alors un GLL_target_is implicite sur la DLL qu'elle vient de charger. Le comportement serait alors identique à ce qui se passe maintenant avec une seule DLL, seulement on pourrait basculer facilement d'une DLL à une autre.

En attendant, je développe mon propre dispatcheur utilisant cette idée.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12274
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Pluseurs DLL simultanément Empty
MessageSujet: Re: Pluseurs DLL simultanément   Pluseurs DLL simultanément EmptySam 31 Juil 2010 - 14:41

Voilà, j'ai fait mon dispatcheur pour pouvoir utiliser plusieurs DLL simultanément dans Panoramic ! Voir
https://panoramic.1fr1.net/vos-sources-vos-utilitaires-a-partager-f2/plusieurs-dll-simultanement-t1016.htm#8118
C'est inclus dans la distribution de KGF.dll sur mon site.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Pluseurs DLL simultanément Empty
MessageSujet: Re: Pluseurs DLL simultanément   Pluseurs DLL simultanément Empty

Revenir en haut Aller en bas
 
Pluseurs DLL simultanément
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Plusieurs DLL SIMULTANEMENT !
» Comparer/modifier 2 sources simultanément
» Peut-on executer 2 whiles simultanément ?
» Editer simultanément plusieurs sources

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos souhaits d'amélioration de Panoramic-
Sauter vers: