Développer un plugin en VB

1
@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

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

Re: Développer un plugin en VB

6
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

7
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.
Jerome
`); }); })(jQuery, window, document, phpbb);