Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 30 sept. 2007 à 10:39
Pour juste un appel, tu peux utiliser un evenement dans ton plugin
DblK
Messages postés51Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention 2 octobre 2008 29 sept. 2007 à 14:44
Une dernière petite question, j'ai testé et implémenté correctement dans un nouveau projet.
Par contre je me heurte à un problème je n'arrive pas à appeler des fonctions et/ou procédure du projet principal à partir de la DLL et cela me gêne dans l'utilité des plugins.
Il y a-t-il un moyen d'y arriver où est-ce impossible, sachant que la procédure que je veux appeler à des paramètres ?
Si je ne suis pas assez clair, contacte moi par MP pour plus de précision.
Merci d'avance
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 23 mai 2007 à 16:40
Je ne pense pas que la limitation doit en dur...
je pense que si le systeme n'a plus de handle de libre pour le hLib, il te sera impossible de charger ta dll. ce qui fait tout de même un bon paquet de handle. Si je ne me trompes pas, les handle sont propres a ton thread, donc, d'ici a ce que tu dépasse ton stock de handle....
DblK
Messages postés51Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention 2 octobre 2008 23 mai 2007 à 15:44
Super, c'est exactement ce que je cherchais !!
Mais j'ai une petite question, n'y a-t-il pas une limitation du nombre de plug-ins ?
Il me semble que windows n'accepte qu'on ne charge qu'un certain nombre de dll (un nombre trivial, sans doute 255).
Donc sachant que windows en prends quelques un au chargement, peut-on trouver le nombre de dll possible a chargé et le cas échéant lors du lancement de l'application dire s'il y a trop de plug-ins, et donc en charger qu'un certain nombre ?
Comment sauter cette protection ? Si on veut avoir 1000 plug-ins par exemple ?
Je sais que c'est un gros nombre, mais c'est juste pour savoir si et comment c'est possible !
Dans le cas d'un logiciel de dessins, et que chaque plugins serait un nouvel effet (nuage, blur, etc...)
NB : 10/10 au passage
cs_Defaite
Messages postés60Date d'inscriptionjeudi 9 décembre 2004StatutMembreDernière intervention10 mai 2007 30 avril 2006 à 11:36
10/10 ! Rien à dire, géniale !
cs_nico1610
Messages postés395Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention19 juin 20091 17 mars 2006 à 19:06
Merci Renfield mais tu t'es fait battre de vitesse par PCPT !!
Lol , c'est bien ca mon erreur, j'avais pourtant la solution devant le yeux depuis longtemps avec tes OCX, mais je n'est rien vu.
Enfin maintenant je suis au ange !!
Merci au admin pour leur reponce ttoujours aussi rapide, simple et précise !
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 mars 2006 à 17:44
StdPicture est de type Objet...
VB attend donc un petit Set :
Private Property Get IDrawingPlugin_Picture() As stdole.Picture
Set IDrawingPlugin_Picture = Form1.Picture
End Property
cs_nico1610
Messages postés395Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention19 juin 20091 17 mars 2006 à 16:48
On peut m'exliquer pourquoi quand je créer dans la dll des plug in une fonction ou propriété Picture as StdPicture
et que dans mon plugIn je met
Private Property Get IDrawingPlugin_Picture() As stdole.Picture
IDrawingPlugin_Picture = Form1.Picture
End Property
Il me sort : Utilisation de la propriété incorect !!
Ca fait trois jours que je trim !! A L'AIDE !!
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 12 févr. 2006 à 05:57
Merci pour ta réponse, j'ai regardé le contenu de ton code et essayé de l'appliquer aux ocx, mais je n'ai pas réussi (je n'ai pas beaucoup essayé, j'ai cherché d'autres codes). Et finalement j'ai trouvé, avec Form1.Controls.Add(..) et ça marche. Enfin je ne doute pas qu'avec ta source ça marche aussi bien sur ;)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 11 févr. 2006 à 22:17
euh... c'est exactement pareil...
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 11 févr. 2006 à 14:42
Salut et bravo pour ce super code,
par contre j'ai un petit problème, comment faire la meme chose mais avec des ocx (car ton programme ne gère que des dll) ?
est-ce possible déjà ? et comment procéder?
Si quelqu'un a une idée je le remercie d'avance.
SgtKabukinan
Messages postés106Date d'inscriptionlundi 20 septembre 2004StatutMembreDernière intervention23 janvier 2010 18 janv. 2006 à 16:22
AMEN !!
@supermotaboy > je le fait pour toi !
allez 10/10
bravo renfield
cs_Tankian33
Messages postés18Date d'inscriptionmercredi 27 octobre 2004StatutMembreDernière intervention29 juin 2007 15 déc. 2005 à 18:58
EXELENT ! Absolument geniale. Tres bien explique et bien code 10/10 et surtout tres interessant
supermotaboy
Messages postés65Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention14 décembre 2005 14 déc. 2005 à 21:08
ok merci!! C'est bien pratique toute cette histoire dis donc!!! Je serais tenté de renotté une deuxieme fois ^^
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 14 déc. 2005 à 20:45
tu es parfaitement libre, dans l'implémentation, etc...
seule contrainte : respecter l'interface, garantissant que le programme principal sache manipuler, et interagir avec le plugin
supermotaboy
Messages postés65Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention14 décembre 2005 14 déc. 2005 à 19:52
Je voudrais savoir un ptit truc, concernant la structure des plugins : en fait on doit juste respecter la structure dans le module de classe, mais le reste, on peut en faire ce qu'on veut nan? j'ai testé de rajouter une fenetre d'options dans les plugins et ça marche sans problème, donc je suppose que oui?
merci en tout cas, l'est vraiment bien cette source!!! :D
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 9 déc. 2005 à 01:54
source mise a jour intégrant maintenant un plugin de test, illustrant une manière possible de debugger
supermotaboy
Messages postés65Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention14 décembre 2005 8 déc. 2005 à 21:06
ok merci pour ces reponses je vais essayer de voir comment j arrive a m'en sortir!!! En tout cas j'ai deja reflechi un peu et cette source va bien m'aider!!
Encore MERCI!! :D
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 8 déc. 2005 à 19:52
Pensez bien a effectuer les modification de l'interface(méthode, propriétés) dans l'interface (IDrawingPlugin)
je vais modifier la source pour illustrer comment débugger.
(l faut placer la classe du plugin dans le programme principal)
si tu as des variables (lecture/ecriture) a faire 'passer', tu peux utiliser une variable déclarée en public dans l'interface, et dans la classe.
il est faisable d'invoquer des fonctions de ton projet principal...
il est possible de les placer dans la dll intermédiaire (celle qui contient la déclaration de l'interface).
Ca n'est pas la seule solution, mais une voie a explorer...
la dll 'tampon' serait finallement le coeur de métier de ton application, celle-ci n'etant au final plus que la partie interface utilisateur...
supermotaboy
Messages postés65Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention14 décembre 2005 8 déc. 2005 à 19:34
Par contre, si je veux faire passer des variables, le seul moyen est que j'utilise Property_Let? Et comment faire pour que la dll puisse exécuter des fonctions du projet principal (même via un intermediaire eventuellement le principal etant qu'elle l execute). J'aurais egalement une autre question concernant le devellopement de ces dll : comment faire pour les débugger???
merci ++
LTourist
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 déc. 2005 à 19:01
On en rêvait, Renfield l'a fait !
Oh que je suis content de voir fonctionner cette appli !
Depuis le temps que je me disais qu'il allait falloir que je me penche sur le sujet (sans avoir le temps, comme d'hab).
Super. Je vais pouvoir revoir mon système d'update de mes applis !
Merci Rey !
supermotaboy
Messages postés65Date d'inscriptionmercredi 26 février 2003StatutMembreDernière intervention14 décembre 2005 8 déc. 2005 à 18:05
Tres bonne source, avec de bons commentaire et un code clair, comme d'habitude de la part de Renfield. Cette façon de procéder est de plus la meilleure que j'ai vu sur ce thème, et de loin.
Bravo!!!
30 sept. 2007 à 10:39
29 sept. 2007 à 14:44
Par contre je me heurte à un problème je n'arrive pas à appeler des fonctions et/ou procédure du projet principal à partir de la DLL et cela me gêne dans l'utilité des plugins.
Il y a-t-il un moyen d'y arriver où est-ce impossible, sachant que la procédure que je veux appeler à des paramètres ?
Si je ne suis pas assez clair, contacte moi par MP pour plus de précision.
Merci d'avance
23 mai 2007 à 16:40
je pense que si le systeme n'a plus de handle de libre pour le hLib, il te sera impossible de charger ta dll. ce qui fait tout de même un bon paquet de handle. Si je ne me trompes pas, les handle sont propres a ton thread, donc, d'ici a ce que tu dépasse ton stock de handle....
23 mai 2007 à 15:44
Mais j'ai une petite question, n'y a-t-il pas une limitation du nombre de plug-ins ?
Il me semble que windows n'accepte qu'on ne charge qu'un certain nombre de dll (un nombre trivial, sans doute 255).
Donc sachant que windows en prends quelques un au chargement, peut-on trouver le nombre de dll possible a chargé et le cas échéant lors du lancement de l'application dire s'il y a trop de plug-ins, et donc en charger qu'un certain nombre ?
Comment sauter cette protection ? Si on veut avoir 1000 plug-ins par exemple ?
Je sais que c'est un gros nombre, mais c'est juste pour savoir si et comment c'est possible !
Dans le cas d'un logiciel de dessins, et que chaque plugins serait un nouvel effet (nuage, blur, etc...)
NB : 10/10 au passage
30 avril 2006 à 11:36
17 mars 2006 à 19:06
Lol , c'est bien ca mon erreur, j'avais pourtant la solution devant le yeux depuis longtemps avec tes OCX, mais je n'est rien vu.
Enfin maintenant je suis au ange !!
Merci au admin pour leur reponce ttoujours aussi rapide, simple et précise !
17 mars 2006 à 17:44
VB attend donc un petit Set :
Private Property Get IDrawingPlugin_Picture() As stdole.Picture
Set IDrawingPlugin_Picture = Form1.Picture
End Property
17 mars 2006 à 16:48
et que dans mon plugIn je met
Private Property Get IDrawingPlugin_Picture() As stdole.Picture
IDrawingPlugin_Picture = Form1.Picture
End Property
Il me sort : Utilisation de la propriété incorect !!
Ca fait trois jours que je trim !! A L'AIDE !!
12 févr. 2006 à 05:57
11 févr. 2006 à 22:17
11 févr. 2006 à 14:42
par contre j'ai un petit problème, comment faire la meme chose mais avec des ocx (car ton programme ne gère que des dll) ?
est-ce possible déjà ? et comment procéder?
Si quelqu'un a une idée je le remercie d'avance.
18 janv. 2006 à 16:22
@supermotaboy > je le fait pour toi !
allez 10/10
bravo renfield
15 déc. 2005 à 18:58
14 déc. 2005 à 21:08
14 déc. 2005 à 20:45
seule contrainte : respecter l'interface, garantissant que le programme principal sache manipuler, et interagir avec le plugin
14 déc. 2005 à 19:52
merci en tout cas, l'est vraiment bien cette source!!! :D
9 déc. 2005 à 01:54
8 déc. 2005 à 21:06
Encore MERCI!! :D
8 déc. 2005 à 19:52
je vais modifier la source pour illustrer comment débugger.
(l faut placer la classe du plugin dans le programme principal)
si tu as des variables (lecture/ecriture) a faire 'passer', tu peux utiliser une variable déclarée en public dans l'interface, et dans la classe.
il est faisable d'invoquer des fonctions de ton projet principal...
il est possible de les placer dans la dll intermédiaire (celle qui contient la déclaration de l'interface).
Ca n'est pas la seule solution, mais une voie a explorer...
la dll 'tampon' serait finallement le coeur de métier de ton application, celle-ci n'etant au final plus que la partie interface utilisateur...
8 déc. 2005 à 19:34
merci ++
LTourist
8 déc. 2005 à 19:01
Oh que je suis content de voir fonctionner cette appli !
Depuis le temps que je me disais qu'il allait falloir que je me penche sur le sujet (sans avoir le temps, comme d'hab).
Super. Je vais pouvoir revoir mon système d'update de mes applis !
Merci Rey !
8 déc. 2005 à 18:05
Bravo!!!