Accueil > Forum > > > > EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++
EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++
vendredi 17 novembre 2006 à 22:44:22 |
EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++

mikimike197
|
Bonjour à tous. J'ai plusieures questions précises: - Peut-on utiliser un EXE programmé en Delphi comme une DLL (appel de fonctions de l'exe à partir d'une autre application avec passage d'arguments par valeur et par référence) qui serait utilisé par VBA Excel (ou Access) ? - Si oui, quelles sont les précautions à prendre (correspondances de type par ex...) et quel est le code à utiliser sous Delphi et quel est celui à utiliser sous VBA ? Merci d'avance pour votre aide...,.... Je précise que je ne maitrise pas l'écriture du programme en delphi (le programme est écrit par quelqu'un qui modifira son code suivant ce que je souhaite, mais je n'ai pas accès à celui-ci). Par contre, le prog en VBA, c'est moi qui l'écrit ! Ensuite, j'explique pourquoi VBA : tout bonnement parce que les données d'entrée et de sortie de mon prog se situent dans un tableur Excel (ou Access) et que je n'ai pas accès à un autre language à partir de mon boulo.  Mikaël, dit Platipu$. [8D] The Lord Works in mysterious ways
|
|
samedi 18 novembre 2006 à 00:05:26 |
Re : EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++

f0xi
|
alors : Peut-on utiliser un EXE programmé en Delphi comme une DLLla reponse est non, car un Executable, qu'il soit ecrit en C, C++, Delphi, VB ou pur ASM ne possede pas les clauses "Exports" necessaire au partage de fonction comme a l'interieur d'une DLL. a moins de pouvoir passer des pointeurs (entier 32bits) en ligne de commande a l'executable pour pointer sur la donnée source et la destination. bien sur le programme doit connaitre le type de donnée a traiter de cette maniere. Le mieux est d'ecrire une DLL (peu importe le langage), d'exporter les fonctions necessaires et d'ecrire un header (entete d'api qui contient la declaration des fonctions et structure necessaire a l'utilisation des fonctions de la DLL dans le langage de destination) pour chaque langage (vb, c, c++, delphi). l'utilisation d'une DLL serat beaucoup plus simple que l'utilisation d'un EXE en ligne de commande. sinon il reste la solution de la creation d'un service de traitement de données (SDC) qui fonctionne un peu comme un serveur local, auquels on transmets des requettes. bien sur, cela veux dire qu'il faut ecrire l'ensemble d'un moteur de requettes qui possederait sa propre syntaxe. Autres solution encore possible, le hook d'adresse de fonction. mais la ca demande des competences de hacking assé avancée puisqu'il s'agit de recuperer l'adresse memoire des fonctions de l'executable et de les appelées dans notre programme. cette derniere methode est encore moins facile a mettre en oeuvre sans parler des eventuelles et nombreuses violation d'accés memoire et du bloquage de ce procédé par les anti-virus/firewall actif. Croc (click me)
|
|
samedi 18 novembre 2006 à 09:59:11 |
Re : EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++

Delphiprog
|
On peut aussi, assez simplement, ajouter une interface COM à l'exécutable Delphi. Tu pourras alors piloter l'application comme tu pilotes Excel ou Word avec ton application VBA. May Delphi be with you !
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient. 
|
|
samedi 18 novembre 2006 à 23:09:49 |
Re : EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++

mikimike197
|
Merci pour votre aide, je sais maintenant que l'on ne peut utiliser un EXE comme une DLL. Il n'est malheureusement pas possible de modifier l'EXE en DLL (l'exe est utilisé comme tel et il serait trop cher pour moi de demander de développer de exe en dll).
Cependant, je sais qu'il est pôssible en Cpp de mettre des arguments à la fonction "main" est d'appeler le programme en passant les arguments sous VBA avec la fonction Shell... Qu'en est-il avec le Delphi ?
[8D] The Lord Works in mysterious ways
|
|
samedi 18 novembre 2006 à 23:25:10 |
Re : EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++

mikimike197
|
Et comment se sert-on de cette fonction COM dont tu parles Delphiprog ?
Merci d'avance à vous tous...
[8D] The Lord Works in mysterious ways
|
|
dimanche 19 novembre 2006 à 02:13:28 |
Re : EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++

Loda
|
"Cependant, je sais qu'il est pôssible en Cpp de mettre des arguments à la fonction "main" est d'appeler le programme en passant les arguments sous VBA avec la fonction Shell... Qu'en est-il avec le Delphi ?"
F0xi t'as dit:
"a moins de pouvoir passer des pointeurs (entier 32bits) en ligne de commande a l'executable pour pointer sur la donnée source et la destination.
bien sur le programme doit connaitre le type de donnée a traiter de cette maniere."
Précison que la focntion shell appel une ligne de comannde. (au cas ou cela ne serrait pas évident pour toi)
donc, oui. on peut faire cela. Mais si t'as plus d'une ou deux fonctions, ca risque de devenir chaud (comme l'a très bien expliquer f0xi). Si tu passe des string court ou des entier ça vas. Si tu doit passer des structure de donnée, c'est moins facile.
Note que transformer un exe dont tu veux utiliser certaines fonctions en dll , bin c'est pas bien dur, ni long, ni cher. surement moins cher que d0ajouter un traitement de la ligne de commande. En fait ça dépend pas mal des fonction que tu doit exporter. si elle ne dépende QUE des paramètre, c'est super simple. sinon, ça devient plus compliquer.
aussi une solution (moche) consite a envoyer des pression de touche à ton applic Delphi. (pour cliquer sur des bouton ou taper du text dans des Tedit). Mais c'est très moche.
je pense que le plus simple c'est de faire une dll. bien sur, cela dépend de beaucoup de choses...
|
|
dimanche 19 novembre 2006 à 11:28:08 |
Re : EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++

Delphiprog
|
Loda a dit : "je pense que le plus simple c'est de faire une dll. bien sur, cela dépend de beaucoup de choses..." Si l'exe comprend des fiches (ce qui est fort probable), cela va gonfler la DLL et poser beaucoup de problèmes si le code repose trop sur l'interface utilisateur. La solution de l'automation COM permet d'éviter ce problème majeur en proposant un moyen d'accès à l'application (jetez un oeil sur le fonctionnement de Word ou d'Excel en mode serveur automation COM). Avant de poursuivre la discussion, jetez d'abord un oeil sur le code simple, mais démonstratif, de cette petite application : Création d'un serveur OLE AutomationVous verrez, ce n'est pas compliqué du tout et ça peut vous donner des idées pour vos projets passés ou futurs  May Delphi be with you !
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient. 
|
|
mardi 21 novembre 2006 à 12:18:00 |
Re : EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++
|
mardi 21 novembre 2006 à 18:16:07 |
Re : EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++

Delphiprog
|
Attention toutefois : cette simplicité n'est valable que pour Delphi. Sous d'autres langages ou environnemments de développement, c'est une autre paire de manches...
Je suis heureux que tu aies trouvé ce lien utile à ta connaissance.
|
|
jeudi 30 novembre 2006 à 22:52:59 |
Re : EXE en Delphi utilisé comme DLL à partir de VBA ou d'un prog C++

mikimike197
|
Merci Delphiprog pour ce lien.
Toutefois, les exemples concernent le pilotage de Excel par OLE sous Delphi, mais ce qui m'intéresse, c'est le contraire: appeler des fonctions de l'EXE à partir de Excel. De plus, la déclaration du serveur OLE de l'EXE dans le registre nécessite t-il d'avoir les privilèges administrateurs sur le poste ?
Merci de votre aide.
[8D] The Lord Works in mysterious ways
|
|
Cette discussion est classée dans : exe, vba, partir, prog, delphi
Répondre à ce message
Sujets en rapport avec ce message
Sortir un EXE de delphi 6 [ par webazard ]
Bonjour voila le soucis j ai fais mon pt prog avec delphi6 je fais F9 je fais mumuze avec ok Je ferme tout et je nouvre que l'exe que delphi ma donner
BESOIN D'AIDE [ par adjena ]
Existe-t-il une ruse à partir d'un exe delphi qui permette de désactiver la demande de password après un écran de veille. C'est à dire qu'après que l'
Arreter un prog delphi ? [ par thonyboy ]
Bonjour a tous. J'ai un petit souci. J'ai fait un prog delphi 7 qui tourne en continu 24H/24H. Ce programme possede un bouton "Quitter" pour bien sur
compiler un executable a partir d une appli delphi [ par MoveX ]
bonjour !je voulais savoir si l etait possible de compiler un executable a partir d une appli delphi deja compilee? je pense que oui car cest le cas d
Controle du INPUT/OUTPUT dune app, extern (console) [ par lemongreen ]
Bonjours,En language C ma question serait sur les captures stdout and stdin d`une application externe. Cependant c`est en delphi (pascal) que je tente
Passer une commande à un exe... [ par ellde ]
Bonjour à tous, Voilà j'ai 1 logiciel de gestion fait en Delphi 4 qui gèrent des fiches (salariés, employeurs etc...). Je dois réaliser un logiciel tj
Peut on créer un EXE à partir de son application ? [ par helmis ]
Peut on créer un EXE à partir de son application ?
Sauvegarder une BD sql server à partir du Delphi [ par dalatifa ]
salut tt le monde,je veux faire la sauvegarde et la réstauration d'une base de données Sql Server 2000 à partir du Delphi et j'ignore les instructions
Importation Decision cube vers delphi 2005 [ par DGPat ]
Bonjour, Un outil que j'aimais beaucoup et facile pour la conception dans delphi 7 n'existe pas dans delphi 2005, a savoir Decision Cube, l'importati
Kernerl32.dll Pb lors du lancement de mon appli. [ par diwilbo ]
Bonjour à tout le monde, C'est la premiere fois que je post un message alors on vera bien si c'est efficace !! Donc voila mon probleme : J'ai prog
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|