begin process at 2012 02 04 12:32:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > AJOUTEZ DES PLUGINS DANS VOTRE PROGRAMME

AJOUTEZ DES PLUGINS DANS VOTRE PROGRAMME


 Information sur la source

Note :
9,78 / 10 - par 9 personnes
9,78 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :plugin, addin, tutoriel, extfloodfill, cours Niveau :Débutant Date de création :08/12/2005 Date de mise à jour :09/12/2005 01:53:20 Vu / téléchargé :8 355 / 1 364

Auteur : Renfield

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (22)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Bonjour,

Je vous propose ici un 'cours' qui illustre l'ajout de plugins dans votre application.
Ce n'est ici qu'un des moyens qui existent d'y parvenir.

Vous trouverez un mini editeur d'image, utilisant des plugins pour fournir ses outils de dessin.

Les plugins sont des Dll COM. Elles sont enregistrées au chargement de l'appli, et dechargées à sa fermeture.

vous trouverez également une classe, dans le projet principal, qui montre comment integrer vos plugins, a ceux existant, et pouvoir les debugger


 Conclusion

Attention, veillez à bien enregistrer (via RegSvr32) la dll .\Environment\MyPaint_IDrawingPlugin.dll

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

09 décembre 2005 01:53:20 :
Ajout d'une classe test, illustrant l'integration a la liste de plugins, et le debogage des plugins

 Sources du même auteur

Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ...
Source avec Zip Source avec une capture JSON PARSER - ANALYSE DE CHAINES JSON
Source avec Zip Source avec une capture MODULE DE TÉLÉCHARGEMENT DE FICHIER BASIQUE (SYNCHRONE / ASY...
Source avec Zip COURS DE PILOTAGE........D'APPLICATIONS
Source avec Zip CSOCKET - REMPLACEZ WINSOCK PAR LA VERSION 2 DES API

 Sources de la même categorie

Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo
Source avec Zip Source .NET (Dotnet) PENSE BÊTE par alpha5

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET2] ADDIN VS2005 - LECTEUR DE FLUX RSS SPECIAL CODES-SOU... par Willi
Source avec Zip Source avec une capture MANIPULATION XML ET DOM - TUTORIEL SUR FOND DE FLUX RSS par Renfield
Source avec Zip Source avec une capture GESTION AUTOMATIQUE DE FICHIER INI PAR ADDIN VB par pit1
Source avec Zip Source avec une capture CRÉATION DE PLUGINS AVEC INTERACTION... par Gally
Source avec Zip Source avec une capture PETITE GESTION DE FICHIER XML UTILISANT LE DOM EN VB6 - TUTO... par jmc70

Commentaires et avis

Commentaire de supermotaboy le 08/12/2005 18:05:24

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!!!

Commentaire de jack le 08/12/2005 19:01:35 administrateur CS

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 !

Commentaire de supermotaboy le 08/12/2005 19:34:31

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

Commentaire de Renfield le 08/12/2005 19:52:42 administrateur CS

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...

Commentaire de supermotaboy le 08/12/2005 21:06:43

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

Commentaire de Renfield le 09/12/2005 01:54:09 administrateur CS

source mise a jour intégrant maintenant un plugin de test, illustrant une manière possible de debugger

Commentaire de supermotaboy le 14/12/2005 19:52:29

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

Commentaire de Renfield le 14/12/2005 20:45:32 administrateur CS

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

Commentaire de supermotaboy le 14/12/2005 21:08:54

ok merci!! C'est bien pratique toute cette histoire dis donc!!! Je serais tenté de renotté une deuxieme fois ^^

Commentaire de Tankian33 le 15/12/2005 18:58:54

EXELENT ! Absolument geniale. Tres bien explique et bien code 10/10 et surtout tres interessant

Commentaire de SgtKabukinan le 18/01/2006 16:22:55

AMEN !!
@supermotaboy >  je le fait pour toi !
allez 10/10
bravo renfield

Commentaire de MadM@tt le 11/02/2006 14:42:34

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.

Commentaire de Renfield le 11/02/2006 22:17:49 administrateur CS

euh... c'est exactement pareil...

Commentaire de MadM@tt le 12/02/2006 05:57:38

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 ;)

Commentaire de nico1610 le 17/03/2006 16:48:36

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 !!

Commentaire de Renfield le 17/03/2006 17:44:34 administrateur CS

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

Commentaire de nico1610 le 17/03/2006 19:06:17

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 !

Commentaire de Defaite le 30/04/2006 11:36:04

10/10 ! Rien à dire, géniale !

Commentaire de DblK le 23/05/2007 15:44:24

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

Commentaire de Renfield le 23/05/2007 16:40:19 administrateur CS

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....

Commentaire de DblK le 29/09/2007 14:44:03

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

Commentaire de Renfield le 30/09/2007 10:39:51 administrateur CS

Pour juste un appel, tu peux utiliser un evenement dans ton plugin

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Adresse en cours sur Explorer!!! [ par Le J ] Salut,Comment faire pour trouver l'adresse en cours sur internet Explorer ou Netscape??MerciALPLe J COURS VB... [ par PAT ] Saluts chers collègues amateurs de VB,JE vien de découvrir vb et je souhaite suivre un cours avancé et sérieux. qui aurait des adresses?Merci Connaitre le provider en cours de connection [ par Julien ] J'ai déja réussi à détecter la connection internet, mais je voudrai savoir avec quel provider la connection est en cours (ex : libertysurf ou waika9) résolution affichage en cours? [ par Nico ] Je souhaite récupérer la résolution de l'affichage en cours WinNT4.0.par le biais d'une fonction de l'API?C'est pour une application en Access97, donc Comment trouver l'ID de l'application en cours?? [ par def ] Bonjour,Dans mon programme, je veux recuperer l'ID du processus de celui ci, comment faire ??Merci d'avance Cherche cours de V.B. [ par darkprog ] J'entame une formation en vb ce lundi et je voudrais trouver un cours TELECHARGEABLE de vb ,ki peut m'aider ??merçi Recherche un programme detectant le plugin FLASH [ par pedro ] Bonjour,Je recherche un programme (fiable)soit en javascript, soit en vbscript detectant le plugin FLASH et renvoyant un valeur booleenne.En effet ce Comment connaitre en cours d'execution les propriétés d'un objet quelconque ? [ par Alex B ] Comment connaitre en cours d'execution les propriétés d'un objet quelconque ? Je m'explique : Au cours de l'exécution de mon application, une de mes v synchro du DD avec fichier en cours de modif [ par OCh ] Je mets a jour un fichier de log avectout ce qui se passe dans mon application.Ce fichier reste donc ouvert tant que mon application tourne.Ce qui fai L'ecran de l'état des impression en cours ? [ par celiphane ] Salut,voilà mon problème :je suis en train de réaliser un programme pour restreindre l'accès à des applications choisies sur les ordinateur d'un lycée


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,201 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales