Page 1 sur 1

Développer un plugin en VB

Posté : jeu. déc. 15, 2011 8:33 pm
par vercomax
@jerome

tu dis "Normalement les types de données sont compatible avec le vb. Donc des que tu as compilé un plugin en vb tu peux lancer Jedicut. Si Jedicut le propose lors de l'ouverture des fichiers c'est qu'il est bien codé. "
Que je fasse en vb ou c++ il va bien falloir que je sache ce que jedicut attend et dans quel ordre pour traiter le fichier dans sa moulinette ? Je vois que dans UFile.pas il y a des variables utilisées dans CNCTools, ce sont ces variables qu'attend jedicut en retour ?
Merci.

Re: Développer un plugin en VB

Posté : sam. déc. 17, 2011 9:23 am
par Jerome
Vercomax,

Il faut procéder dans l'ordre. Je dois encore rédiger un petit "guide du développeur" mais voici ce qu'il faut commencer par faire.

Prends le plugin OpenDat, c'est le plus simple pour commencer. Avec le plugin OpenDXF ton analyse sera parasité par l'appel à la dll CNCTools.

Les fonctions utilisées par Jedicut sont les suivantes :
[pre]
function GetDllFamily : byte; export
procedure GetDescription(Cible : PChar; tailleCible: integer); export
procedure GetFileExtension(Format : PChar; tailleCible: integer); export
function OpenFileDll(Src : PChar ; var nbEx, nbIn : integer) : smallInt; export
function LoadFileDll(var Profil : TCoordonneesProfil) : smallInt; export
procedure GetProfileDescription(Cible : PChar; tailleCible: integer); export
procedure GetProfileName(Cible : PChar; tailleCible: integer); export
function SaveFileDll(Dest : PChar) : smallInt; export
[/pre]

Je ne vais pas les décrire une à une pour l'instant, mais tu as là les fonctions et paramètres attendus par Jedicut. C'est plus clair ?

GetDllFamily renvoie la famille de ce plugin. Tu as toutes les familles possibles dans UType.pas. Mais pour l'instant laisse la même valeur que dans OpenDat. Je n'ai pas encore implémenté dans Jedicut l'enregistrement des fichiers via les plugins seulement l'ouverture, car c'était la priorité pour ajouter rapidement l'ouverture des dxf.

GetDescription : Tu as juste à modifier ce texte ' (*.dat) v0.1' en remplaçant dat par l'extension des fichiers que tu veux ouvrir avec ton plugin, c'est ce qui est affiché dans la liste des formats de fichier de la fenêtre de dialogue d'ouverture de fichier (essaie d'ouvrir un fichier dans Jedicut et tu verras).

GetFileExtension : Cette fonction renvoie l'extension du fichier, il faut donc juste remplacer '.dat' par ton extension, sans oublier le "." qui est important.

Pourquoi 2 fonctions faisant presque la même chose, c'est justement pour avoir un libellé simple acceptant quelque erreurs de formatage, sans remettre en cause la faculté de Jedicut à savoir reconnaitre les fichiers gérés par ton plugin...

Si tu fais déjà ça, que tu compiles, sans mettre dans code dans les autres fonctions, tu dois voir un résultat dans Jedicut en allant dans le menu "Fichier" et en cliquant sur "Ouvrir". Ton plugin doit apparaitre dans la liste des extensions proposées.

Comme tu veux faire ça en VB, il faut déjà que tu codes le fichier UType qui est dans le répertoire "commun" sur le serveur svn, puis que tu codes la structure vierge d'un plugIn en commençant par les fonctions que je t'ai indiqué. Quand tu auras trouvé les formats de données correspondant, pense à remplir le fichier DataType.ods, ça pourra aider d'autres développeurs. Le but de ce fichier est de faire une table de correspondance des formats de donnée entre langage de programmation.

Préviens moi quand tu en seras là et je t'expliquerai la suite.

Re: Développer un plugin en VB

Posté : sam. déc. 17, 2011 12:10 pm
par vercomax
Ok, parfait. Je m'attaque à cà de suite ;)
Merci.

Re: Développer un plugin en VB

Posté : sam. déc. 17, 2011 7:39 pm
par vercomax
@Jerome
tu dis : "il faut déjà que tu codes le fichier UType"

cad ? je rajoute des lignes et tu compileras ensuite ? je fais une dll sous vb de ces lignes ?

j'ai presque fini la dll de base avec les 3 fonctions de base comme tu m'a indiqué.

merci.

Re: Développer un plugin en VB

Posté : dim. déc. 18, 2011 7:24 pm
par Jerome
Chaque plugin est indépendant. Je n'ai rien à recompiler.

Soit tu traduis le fichier utype.pas en vb, soit tu déclaré tes types de données directement dans ton plugin. Moi j'ai préféré faire un fichier réutilisable par tous les plugins codés en delphi ;)

C'est plus clair ?

Re: Développer un plugin en VB

Posté : lun. déc. 19, 2011 10:37 am
par vercomax
Heu non, c'est pas plus clair.:S
Je ne comprend pas.
Comment Jedicut va savoir qu'il y a une nouvelle dll, par exemple OpenMax.dll, a utiliser pour proposer une nouvelle extension de fichier ?
A quoi va me servir de traduire utype.pas en vb ? Et si je le traduit je vais en faire un exe ou une dll, mais comment jedicut va le savoir ?
Jedicut charge toutes les dll dans le répertoire "dll" ? Je pige pas.
J'ai fait une dll de base comme tu m'as dit. Elle comprend 3 fonctions de base: GetDllFamily, GetDescription, GetFileExtension. Elles retournent indépendamment une valeur sous forme de "string". Je l'ai posé dans le rep "dll" de jédicut et si je fait "ouvrir" je ne vois pas la nouvelle extension de fichier. Mais pour moi c'est normal, il faut bien que Jedicut sache qu'il y a une nouvelle dll, et qui le lui dit alors ?

Merci.

Re: Développer un plugin en VB

Posté : mer. déc. 21, 2011 6:55 am
par Jerome
Salut !
Le principe d'un plugin c'est que l'application hôte le détecte lors du lancement. Donc Jedicut se contente de scanner le répertoire dll. Aucune évolution de Jedicut n'est nécessaire.
Comment as tu traduit les types de données utilisés par Jedicut et les plugins (les record en delphi par exemple ?)
Toi tu dois juste générer une dll. Poste ton code vb sur le forum je regarderai où tu en es. Je vais aussi t'envoyer le petit exécutable de test qui t'évitera de passer par Jedicut à chaque fois. Tu gagneras du temps.

Re: Développer un plugin en VB

Posté : ven. déc. 23, 2011 9:10 am
par Jerome
Salut vercomax,

J'ai bossé pour toi hier pour faciliter tes tests de plugin de fichier. Tous les détails dans le message suivant : www.aeropassion.net/forums/read.php?19,8099

Re: Développer un plugin en VB

Posté : ven. déc. 23, 2011 12:41 pm
par vercomax
Merci, je mate tout çà.
J'en profite pour vous souhaiter de joyeuses fêtes à toutes & tous.
Certainement beaucoup plus absent des écrans durant ces 10 prochains jours, je passerai néanmoins plusieurs fois ici pour suivre les fils de discussion et continuer les développements que j'ai engagés.
Merci.

Re: Développer un plugin en VB

Posté : ven. déc. 23, 2011 1:40 pm
par Jerome
Passe de bonnes fêtes toi aussi ;)