Bonjour à tous !!!
Voilà en fait pour résumer grossièrement j'ai à ma disposition deux exécutables A et B. Je réponds tout de suite qu'il n'y a aucun moyen de passer par des dépendances exe/dll, car il y a des problèmes d'incompatibilité avec les dlls utilisées par les deux zigotos
L'exécutable A appelle de temps en temps l'exécutable B pour accomplir une tâche particulière. Auparavant cela suffisait amplement, car l'exécutable B ne renvoyait comme retour qu'un booléen true ou false pour spécifier si le calcul s'était bien déroulé ou non.
Le souci est désormais que l'exécutable A a besoin d'objets qui sont construits à la fin de l'exécution de B.
L'inconvénient c'est que le main de B ne peut renvoyer rien d'autre qu'un int, et bien évidemment il faut envoyer beaucoup plus.
Voici un exemple concret de ce que je voudrais obtenir (je suis sous Windows):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 /// /// main.cpp de A.exe /// #include <iostream> // main #include <sstream> // ostringstream int main() { const int argument = 3; std::ostringstream buffer; buffer << "B.exe \"" << argument << "\""; int resultat = system(buffer.str().c_str()); // appel de l'exécutable B, en lui passant en paramètre "agument" // y a t'il un moyen de faire un "MyObject my_object = system(buffer.str().c_str()); ? }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 /// /// main.cpp de B.exe /// #include <iostream> // main #include "MyObject.h" int main(int argc, char* []argv) { if(argc != 2) { std::cerr << "Erreur: nombre d arguments incorrect" << std::endl; return EXIT_FAILURE; } MyObject my_object = do_something(argv[1]); // Y a t'il un moyen de faire un "return my_object; " ?? }
Partager