koukihosni
Messages postés1Date d'inscriptionmardi 31 mai 2011StatutMembreDernière intervention22 novembre 2011
-
22 nov. 2011 à 21:32
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
26 nov. 2011 à 17:32
bonsoir
mes amis nous nous intéressons au mécanisme DDE développé par Microsoft pour échanger des données entre des applications tournant dans un environnement Windows. Ceci est souvent nécessaire lorsqu’on veut accéder à une base donnée à partir d’une application client écrite en (VC, VC, JAVA, …). La méthode la plus simple est de passer par Excel. La première application accède à une page Excel pour écrire ou lire (Application client serveur DDE) et la deuxième application accède à la même page Excel pour récupérer les données chargées par la première application et en même temps elle envoie un accusé de réception à la première application lui indiquant que les données ont été récupérées. Cet accusé de réception peut être sous la forme d’une variable true False échangée entre les deux applications afin de synchroniser les échanges.
comment on va résoudre ce problème et merci.
ToutEnMasm
Messages postés591Date d'inscriptionjeudi 28 novembre 2002StatutMembreDernière intervention13 décembre 20223 23 nov. 2011 à 09:54
Etrange question contennt la réponse.Excel est un serveur DDE (DDEML).
Il suffit de lui "acrocher" un client.
Un exemple tout fait ne doit pas être très dure à trouver.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 26 nov. 2011 à 17:32
Bonjour,
Certains considèreraient certainement DDE comme une antiquité.
Lancer excel pour échanger des données entre deux applications, c'est quand même ultra moche (Performances déplorables, peu de portabilité...)
Bref, il existe à peu près 17 millions de méthodes pour échanger des données entre deux processus, et une autre que DDE serait probablement plus appropriée à votre cas.
Après, c'est sûr que si c'est pour échanger entre du java et du C ou C++, c'est plus chiant et sa limite les possibilités.
D'un côté java est plus ou moins prévu pour être portable et pas du tout lié à un système d'exploitation. Tout ce qui est communications inter process se fait via des usines à gaz style rmi ou un esb....
De l'autre le C peu exploiter toutes les api proposées par Windows (Mémoire partagées, pipes, messages, mutexs...).
Il est possible de passer par jni pour utiliser du C depuis le java. De cette manière, tu peux accéder à une shared memory gérer par une autre appli en C.
Il y a aussi des protocoles d'échanges standardisés style CORBA, ou les services web, qui sont censé gérer tous ces problèmes de communication d'un langage vers un autre.
Mais si c'est pour échanger 3 types de données et demi dans un format simple entre une appli C et une appli java, je te conseillerais vraiment de passer par de bête socket. Après un peu de réflexion pour définir ce qui doit transiter, tout se fera sans problème vu que les sockets sont très bien supportées en java comme en C. Les perfs seraient entre les mémoire partagées et les usines à gaz. Et c'est une méthode très éprouvée, notamment dans les entreprises (Exemple, serveur java et client vb6 tous les deux capable d'interrogé un serveur C, qui peut d'ailleurs se trouver sur une autre machine).