x

Bonjour,

Je suis gérant d'une société de services et de conseil située en Pays de la Loire et spécialisée en développement sur mesure sous les outils PCSOFT WinDev, WebDev et WinDev Mobile. 

Nous intervenons principalement sur le territoire français, mais nos missions nous amènent également vers d'autres contrées (USA, Suisse, Belgique, Nouvelle Calédonie ...) 

Nous proposons les services suivants:

- Développement sur mesure au forfait
- Délégation de collaborateurs sur site (régie).
- Reprise complète de vos applications, sites web et Mobiles (TMA)
- Renfort d'équipe informatique.

Si vous souhaitez discuter d'un projet ou tout simplement faire connaissance, n'hésitez pas à me contacter au 06.86.67.72.32 ou contact[@]ennovsys.fr

A très bientôt,

Vincent ROY

Création de DLL pour Windev

Bonsoir,
Je vous propose dans ce post un programme de génération de DLL. Voila comment ça fonctionne. Prenons un exemple. Disons que vous avez dans un projet Windev une procédure globale  nommée « procedure_globale_num1″ dont voici le prototype:

Procédure  procedure_globale_num1 (param1 est une chaine="")
Info (param1)

Avec le programme de génération de DLL, vous allez choisir le projet Windev d’ouvert et ce dernier va lister les procédures globales. Vous choisirez celle que vous voulez créer dans une DLL. La DLL générée contiendra alors des fonctions exportées du meme nom que les procédures globales. La dll pourra donc être appelé via Windev par la fonction AppelDLL32 (Je ne vois pas trop à quoi ca servirait vu qu’on peut prendre directement la WDL, mais bon …), et tout autre langage externe, du moment que ce dernier puisse charger une dll et appeler une de ces fonctions exportées.
Un exemple en C:

typedef void Object_Procedure_Globale_Num1 (char* param);
Object_Procedure_Globale_Num1 *Procedure_Globale_Num1;
HMODULE hMod = LoadLibrary (« La_Dll_Généré.DLL »)
if (hMod==NULL) return;

Procedure_Globale_Num1 = (Object_Procedure_Globale_Num1*) GetProcAddress (hMod, »procedure_globale_num1");
if (Procedure_Globale_Num1==NULL) return;

Procedure_Globale_Num1 (« HELLO »);

NB: Par contre, le framework (au minimum WDxxxVM.DLL, WDxxxCPL.DLL) et la WDL du projet sont indispensables et doivent être situés dans le meme repertoire que la DLL générée.
Au niveau des contraintes:
- Le programme ne gère pour l’instant que 50 procédures maximum.
- Le programme ne gère que les paramètres de types « Entier, Caractère, Chaine et Réel ».

Pour finir, le lien de téléchargement et une copie d’écran:
Download
Downloaded 860 times

[WD-GEN-DLL]

Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

34 Comments on "Création de DLL pour Windev"

commenter

Intéressant mais peu d’utilité ^^

commenter

Peu utile, après c’est une question de point de vue ;)

commenter

C’est évident que si on développe qu’avec Windev, cela ne sert à rien, mais ce n’est pas le but.
Savoir qu’on peut créer une DLL à partir de Windev est qui est exploité par un autre langage est pratique

commenter

En effet, comme le dit Daniel, (et je le dis dans le post également), si l’on ne développe qu’avec Windev, ca ne sert vraiment à rien.
Par contre, ça ouvre des opportunités aux autre langages.

commenter

as-tu fais un test avec c#, vc++ ou même vba ?

car passer d’une fonctionnalité sur un outil A et passé sur un pan application développé en WinDev c’est pas mal comme intégration d’application.

commenter

pour info, tu n’es pas obligé de fournir les dll wd12. Si la personne n’a pas wd12 pas d’utilité pour ton outil vu que wd12 doit être ouverte ;)

commenter

Je ne fourni aucune dll, mais je précise simplement qu’il en faut au moins deux: WDXXXVM.DLL et WDXXXCPL.DLL.
A+

commenter

Salut,

Je suis très intéressé de voir le code source de ton application, comment t’y prends-tu pour générer la DLL ?

Merci pour toute réponse.

Bonne journée!

commenter

Au fait tu devrais tester la validité de ton site en XHTML, avant de mettre un lien « XHTML Valide » ;) 93 Errors, 21 warning(s)

commenter

Salut,
Le principe est très simple, je ne me complique pas la tête.
J’ai une DLL basique avec dedans N fonctions exportées. Suivant le projet, je renomme le nom des fonctions exportées de la DLL comme celle du projet et le tour est joué.
Sinon au sujet du XHTML, il est vrai que je n’ai pas vérifié. Le lien vers XHTML valid est mis directement lorsque tu installes wordpress, je n’ai donc pas fais attention ;) , et honnetement c’est le dernier de mes soucis.
a+

commenter

Nice post u have here :D Added to my RSS reader

commenter

Bonjour,

Voilà je suis à la recherche d’un moyen pour lire une table dans une base Windev depuis mon logiciel qui est en Delphi.

je n’ai pas windev mais l’idée de la DLL et peut être ma solution.

c’est tu si cela pourrai fonctionner avec Delphi ?

MERCI d’avance.

commenter

re bonjour,

c’est encore moi, pourrai t’on imaginer une DLL qui si je lui donne « le nom de la table » me liste c’est donner ?
ou si je lui donne « le nom de la table » , « le nom du champ de recherche  » , « la valeur de ce champ » et « le nom du champ de retour » me retourne la valeur de celui-ci ?

MERCI de ta reponse…..

commenter

Salut,
On pourrait je pense créer un projet windev avec différentes procedures globales. Une ouvrant le fichier hyperFile, une autre faisant un hlitpremier, hlitsuivant, etc …, et le convertir en DLL. Apres, peut etre qu’il existe des outils deja tout prets.

commenter

Bonjour,

d’abord merci pour ta reponse, mon probleme c’est que l’editeur de se logiciel ne veux pas me donner un cout de main mais par contre ça ne le derange pas que j’aille lire ces tables si j’y arrive !!!!!! simpa, enfin…
j’ai recupérer les DLL du logiciel mais je ne sais pas à quoi elles correspondent, y a t’il un moyen de le savoir ? sinon comment puis je faire pour créer se projet

commenter

Salut,
A mon avis, demander (voir payer) à une personne de te créer une DLL avec les fonctions de base HF (HDeclareExterne, HLitPremier, HlitSuivant, HEnDehors, …)

commenter

Salut,

OK, alors pourrai tu me le faire et à quel prix.

commenter

il me met un problème de chargement de la bibliothèque wdl tu as une idée ?

commenter

après avoir généré la dll avec ton appli quand je veus utiliser encore cette dll avec windev pour savoir si elle fonctionne la fonction chargedll se passe sans pb mais au niveau de appeldll32 j’ai un message d’erreur évoquant un problème concernant le chargement de la bibliothèque wdl as tu déjà rencontré ce problème ?

commenter

Salut,
Il faut mettre la DLL, la WDL dans le meme repertoire que ton executable.
A+

commenter

de quel exécutable parles tu ?
celui de la nouvelle application ?

commenter

Et bien l executable qui va se charger d’appeler la DLL.

commenter

Bonjour et félicitations pour votre site intéressant.

J’arrive à utiliser une Dll windev dans vb6.
Mais je n’arrive pas à renvoyer une valeur.
Si j’utilise RENVOYER unechaine vb plante, si j’utilise RENVOYER un entier, je récupère toujours 1 dans vb
Y a-t-il une possibilité ?

commenter

Bonjour,
Des utilisateurs m’ont également remontés ce bug de renvoi de valeurs. Une autre version du logiciel est en cours de création qui corrigera ce « retour » et ajoutera de nouvelles fonctionnalités comme par ex:
- L’insertion et/ou compression des DLL Windev/WDL dans la DLL créée. La compression utilisera la librairie ApLib. Après quelques tests ca fonctionne, le seul hic est le temps de création/décompression.
NB: La WDL ne sera pas compressée vu qu’elle l’ait deja ;)
Donc c’est dans les tuyaux :)
A+

commenter

Bonjour,

Superbe…mais aurais tu l’exe pour windev 14?
Il marche bien avec windev 12 mais pas avec windev 14.

Merci
@+

commenter

Non, actuellement, ce n’ait pas prévu pour fonctionner avec windev 14.
A+

commenter

Bonjour,
Même si je n’ai pas encore testé ce projet, je le trouve vraiment intéressant, en particulier pour « compléter » Windev dans le domaine de la production de composants réutilisables par « liaison dynamique » (je sais que c’est plutôt confus…).

Par exemple, je voudrais utiliser un serveur XML-RPC pour exécuter des traitements codés avec Windev dans un composant… Le serveur XML-RPC est lui aussi écrit en Windev…
Mais je ne peux pas créer un projet unique qui fusionnerait le serveur et le composant, car le but de la manœuvre est d’ajouter ou d’enlever « dynamiquement » des composants, sans arrêter le serveur.

Une véritable valeur ajoutée serait de créer systématiquement dans cette DLL une « procédure d’introspection » qui énumère les procédures mises à disposition (avec le type des paramètres).

Mes compliments et bonne continuation !

commenter

Salut JBO,

En ce qui concerne cette « procédure d’introspection », il ne sera pas très dur de la coder, mais je ne vois pas trop à quoi elle servirait.
a+
Vince

commenter

Hello Vince,

En réponse à:
« En ce qui concerne cette “procédure d’introspection”, il ne sera pas très dur de la coder, mais je ne vois pas trop à quoi elle servirait. »

Imagine que mon serveur XML-RPC puisse « charger » dynamiquement des composants contenant des procédures.

Le rôle du serveur XML-RPC est d’accepter une demande d’exécution de procédure, demande provenant d’un client quelconque (RPC), et de la faire exécuter par le composant qui l’implémente.

Si mon serveur permet de « publier » des procédures, il n’a pas la connaissance « a priori » des procédures implémentées dans un composant chargé dynamiquement.

Comment lui permettre de récupérer la liste des procédures disponibles ?

On peut envisager plusieurs solutions.
Par exemple, un fichier texte (XML ou autres) qui décrit les procédures. Oui… mais il faut reconstruire ce fichier à chaque évolution du composant, et de façon parallèle au projet (d’où un risque d’erreurs).
Plus élégant et plus robuste: le composant délivre lui-même les informations sur les procédures qu’il implémente.
Quand le serveur XML-RPC charge dynamiquement un composant (via la DLL), il commnence par appeller une procédure « standard » du composant qui lui fournit les informations utiles pour ensuite « publier » les procédures vers les clients.

Sans ce mécanisme, le système ne peut pas être dynamique.

Est-ce plus clair ?

commenter

Bonjour Vince,

Une petite remarque/suggestion…

Dans la présentation de ton outil “Création de DLL pour Windev” pourrais-tu préciser si l’appel à la DLL lance un nouveau processus ou bien si toutes les DLL sont chargées dans l’espace mémoire du processus appelant.

Merci !

commenter

Salut JBO,

Pour répondre à ta question, les DLL sont chargées dans l’espace mémoire du processus appelant.
A+
Vince

commenter

Bonjour,

Ton idée est purement géniale.
Enfin un moyen de générer des DDL « à partir » de WINDEV. Je te dis BRAVO !

J’ai lu que ton outil fonctionnait avec WD12 mais pas avec WD14. A quand une version qui fonctionne pour WD14 ? Est-ce prévu ? Le source de ton outil est-il disponible ?

Ton outil m’intérresse vraisment car j’envisage d’acheter la WD14 pour mes besoins.
J’avoue que de ta réponse dépend mon choix.

A+

commenter

Salut,

Non ca ne fonctionnera pas avec une version 14.
A+
Vince

commenter

Salut,

l’idée est vraiment excellente !

serait-ce possible d’avoir le code source pour rendre compatible en version 14 ? (et partager ensuite?)

Leave a Reply

Name:
Email:
Website:
Comment:
XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>