Gestion de plugins avec partages de fonctions/variables par l'exe + sdk (compatible vc++ 6 et 7, borland c++, delphi, asm)

Soyez le premier à donner votre avis sur cette source.

Vue 5 968 fois - Téléchargée 569 fois

Description

Salut,

je sais que ya une gestion de plugin deja poster, mais elle me convenait pas du tout (et cetait un projet borland), alors je vous ai donné celle que j'utilise dans notre projet actuel.

elle permet :

- de partager des fonctions et des variables de l'executable
- de gerer la mises a jour des nouvelles fonctions/variables de l'exe a cours de sa vie
- d'etre compatible avec des plugins vc++ 6, 7, borland c++, delphi, et asm
- d'etre souple dans la gestion des plugins
- une gestion de passage de parametres entre plugin <-> executable pour lecture et sauvegarde
- de gerer des types de plugin (dans le source ya un exemple de type IMPORT)
- filtre les dll de type COM

les messages d'erreur et toutes les parties importantes pour ladaptation dans votre projet sont commentés, et un sdk explicatif est filé

jai voulu gérer les dll ActiveX de VB mais c trop la galere, et aussi les script vbs et js mais impossible de men servir correctement (pas moyen pour se servir des fonctions et variables partagées par l'exe)

Source / Exemple :


voici un exemple de l'executable 

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { CSystemPlugin CSP; CDll *dll=CSP.LoadPlugin("","pluginvcpp6.dll"); // "" c'est le chemin ou se trouve le plugin if (dll) CSP.AddPlugin(dll); dll=CSP.LoadPlugin("","pluginvcpp7.dll"); // "" c'est le chemin ou se trouve le pluginl if (dll) CSP.AddPlugin(dll); // jai trouvé personne pour men faire un //dll=CSP.LoadPlugin("","pluginborlandcpp.dll"); // "" c'est le chemin ou se trouve le plugin //if (dll) CSP.AddPlugin(dll); // pas pu le faire, je trouve plus mon compilateur mais je sais que ca marchera //dll=CSP.LoadPlugin("","plugindelphi.dll"); // "" c'est le chemin ou se trouve le plugin //if (dll) CSP.AddPlugin(dll); // ici on va lister tout les plugins unsigned int siz = CSP.Size(); int y; for (y=0;y<siz;y++) { dll = CSP.Get(y); // ou dll = CSP.Get(PLUGINIMPORT,y); pour lire que les plugins import if (!dll) continue; MessageBox(NULL,dll->GetName(),dll->GetInfoName(),MB_OK); //on appele une fonction du plugin if (dll->GetType() == PLUGINIMPORT) ((CDll_Import*)dll)->Fonction1("c'est un test de l'exe"); //ici on envoi des parametres du plugin dll->ReadParamBySystem("name","dark poulpo [dark team]"); dll->ReadParamBySystem("avatar","none"); // on recupere les parametres du plugin pour les sauver int i=0; bool ret = true; while(ret) { char blabla[2100]; char nom[1024]; char data[1024]; ret=dll->WriteParamBySystem(i,nom,data); sprintf(blabla,"%s : %s",nom,data); MessageBox(NULL,blabla,dll->GetInfoName(),MB_OK); i++; } } // bye CSP.UnloadPlugins(); return 0; }

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2
Date d'inscription
lundi 25 septembre 2006
Statut
Membre
Dernière intervention
24 octobre 2008

gg mec
super example pour comprendre comment ca marche hehe.
Messages postés
80
Date d'inscription
lundi 28 juillet 2003
Statut
Membre
Dernière intervention
22 mars 2007

Lo à la recherche de vote....
Moi je trouve ça super !
Messages postés
76
Date d'inscription
lundi 21 mars 2005
Statut
Membre
Dernière intervention
29 novembre 2009

pas de quoi!!! ;-), dommage que tu n'est pas voté, mais un commentaire c déjà ca
Messages postés
224
Date d'inscription
samedi 26 juillet 2003
Statut
Membre
Dernière intervention
30 mars 2009

he ben un grand merci, j'en cherchais une comme ça depuis longtemps !
elle fait partie de mes favoris !
Messages postés
76
Date d'inscription
lundi 21 mars 2005
Statut
Membre
Dernière intervention
29 novembre 2009

finalzement je vais quand meme faire un emise a jour pour gerer les script vbs et js, tampis si ca gere pas les fonctions de l'exe, certains dentre vous pourront quaund meme sen servir.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.