[C++\VBA] Communication C++ VBA

Communication C++ VBA [C++\VBA] - C++ - Programmation

Marsh Posté le 10-07-2003 à 12:40:07    

Bonjour,
 
Je cherche un moyen de faire communiquer une appli VBA avec une autre en C++. Le but c en gros de lancer l'apli C++ à partir de VBA et de lui passer des données et qd C++ à fini c calculs il retourne d valeurs.
 
Merci

Reply

Marsh Posté le 10-07-2003 à 12:40:07   

Reply

Marsh Posté le 10-07-2003 à 12:53:03    

Une dll semble toute indiquée ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 10-07-2003 à 13:36:24    

Reply

Marsh Posté le 10-07-2003 à 15:32:59    

HelloWorld a écrit :

Une dll semble toute indiquée ...


 
Le probleme d'une DLL c que ca n'execute que d fonctions et qu'il n'y a pas vraiment d'échange. Comme j'aurais certainement besoin de faire communiquer les deux applications entre elles je ne suis pas sur que ce soit adapté??? J'aurais besoin de faire des trucs du style : je click sur un bouton dans l'appli C++ ca demande des info à VBA et aussi je click sur un bouton dans VBA et ca execute quelque chose dans l'appli C++. Je vois pas comment faire ca avec des DLL.

Reply

Marsh Posté le 10-07-2003 à 15:37:08    

Je dis probablement une connerie, mais ya pas moyen de faire communiquer les 2 avec des sockets (existe en VB ca?)?

Reply

Marsh Posté le 10-07-2003 à 15:39:47    

skeye a écrit :

Je dis probablement une connerie, mais ya pas moyen de faire communiquer les 2 avec des sockets (existe en VB ca?)?


 
Bah ouais c un truc genre socket ki me fodrai mais je c pas comment ca marche et si c possible avec VB...

Reply

Marsh Posté le 10-07-2003 à 16:12:04    

Ben y'a bcp bcp de solutions.
Ca s'appelle l'IPC.
Mailshots
pipes
dll
DDE
COM/OLE
sockets
File mapping
presse papier
shared memory
RPC
...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 10-07-2003 à 16:22:39    

HelloWorld a écrit :

Ben y'a bcp bcp de solutions.
Ca s'appelle l'IPC.
Mailshots
pipes
dll
DDE
COM/OLE
sockets
File mapping
presse papier
shared memory
RPC
...


 
Cool... Et c koi le plus simple? Comment ca marche? Tu peu expliquer un peu plus stp?
 
Merci

Reply

Marsh Posté le 10-07-2003 à 18:11:25    

HelloWorld a écrit :

Ben y'a bcp bcp de solutions.
Ca s'appelle l'IPC.
Mailshots
pipes
dll
DDE
COM/OLE
sockets
File mapping
presse papier
shared memory
RPC
...


t'as oublié CORBA :D

Reply

Marsh Posté le 10-07-2003 à 18:32:09    

Et les messages windows aussi.
Le plus simple, si tu connais un peu la prog windows, c'est les messages je pense.
Après, les autres, je les ai pas tous testés.
Les sockets, c'est surement ce qu'il y a de plus portable.
OLE/COM ou CORBA, c'est peut être un peu too much.
Mais avant tout, explique un peu + ton cas, ce que tu veux echanger (la quantite), et ce que ton appli C++ doit faire. Comment tes 2 applis interagissent quoi.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 10-07-2003 à 18:32:09   

Reply

Marsh Posté le 10-07-2003 à 19:16:08    

Bon ok j'explique un peu plus dans les details. Ce que je dois echanger c d tableaux de données (double) contenant a peu pres 3 colones de 12000 valeurs. Le but de l'appli C++ est de visualiser ces valeurs de faire des animations ou de faire des calculs et de renvoyer les valeurs à VB. En fait l'appli C++ comprend une interface qui permet de demander d'avantages de données à VBA...

Reply

Marsh Posté le 11-07-2003 à 09:50:42    

Ton appli VBA fournit le tableau à C++. Puis, que se passe-t-il, elle attend le résultat ? Ou fait autre chose ? C++ demande d'avantage de données, de quel genre ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 11-07-2003 à 10:44:00    

HelloWorld a écrit :

Ton appli VBA fournit le tableau à C++. Puis, que se passe-t-il, elle attend le résultat ? Ou fait autre chose ? C++ demande d'avantage de données, de quel genre ?


 
Ben ca depend de ce que l'on veu. Parfois VB attend un resultat. Parfois l'appli C++ demande d'otres tableau, parfois des données mais qui ne sont pas des tableaux... En fait ca depend vraiment de ce que l'utilisateur choisi dans les 2 interfaces.

Reply

Marsh Posté le 11-07-2003 à 17:12:21    

Ce me parraît quand même bizarre de devoir faire 2 applis séparées pour ça. T'as pas moyen de faire en sorte que l'aplli VBA s'occupe de l'interface (quit à utiliser des objets écrits en C++) et utilise une dll C++ pour ses calculs ?
Sinon, donc, c'est une relation de type client-serveur : VBA demande un truc à C++ et attend la réponse ... le pblm c'est que pour fournir cette réponse C++ demande des trucs à VBA (c'est ce double sens qui me derange dans ta conception). Donc y'a 2 clients serveurs ...
Je sais pas trop ce qui est le plus simple en VBA ... tu peux peut être bidouiller dans le genre :
- tu créés une dll C++ que tu appelles depuis VBA
- lors de l'appel tu lui fournis un moyen pour qu'elle te demande + d'infos
 
reste à trouver ce moyen de communiquer depuis C++ vers VBA. Tes connaissances influent sur le choix. Si tu connais la prog win32, tu peux créer une fenêtre dont le seul but est de recevoir des messages privés et passer le handle de cette fenêtre à la dll C++ (pour qu'elle fasse des sendmessage dessus). Y'a les sockets aussi (tu passes un numero de port).
Tu peux utiliser une zone mémoire commune (tu passes un pointeur sur l'ensemble des données, la dll C++ pioche ce qui l'intéresse) c'est simple et efficace avec une dll (même process).
Faut voir ce qui est faisable (simplement) en VBA.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed