IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

R�cup�rer une classe retourn�e par un exe


Sujet :

C++/CLI

  1. #1
    Candidat au Club
    Femme Profil pro
    �tudiant
    Inscrit en
    Mars 2012
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par d�faut R�cup�rer une classe retourn�e par un exe
    Bonjour,
    j'ai un premier programme qui contient une fonction principale


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #pragma comment(linker,"/entry:LoadingParams") 
    EParams LoadingParams(char *arg1, char *arg2)
    {
       //traitement
        EParams  aa;
     
      return ;
     
    }
    1. je souhaite appeler l�ex�cutable de ce programme dans un programme externe, j'ai utilis� la fonction
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    void main()
    {
    execl("c:/mesdonnées/ LoadingParams.exe", "arg1", "arg2");
    }
    questions
    1) mon 1er programme doit th�oriquement retourner valeur de type EParams , comment puis-je r�cup�rer cette classe dans un programme externe. la fonction excel() retourne elle des valeurs??
    2) si ma fonction EParams LoadingParams(char *arg1, char *arg2)contient une variable de type EParams comme param�tre d'entr�e:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    EParams LoadingParams(char *arg1,  EParams aa);
    comment peut-on appeler l�ex�cutable correspondant dans un programme externe??

    Merci pour toute proposition

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 509
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 509
    Par d�faut
    Ca compile sous VS ce truc ?

    D�j� que je gueule quand des apprentis sorciers veulent transmettre des instances d'objets d'une dll � l'ex�cutable, vous faites encore plus fort, carr�ment de programme � programme.

    Comment allez-vous partager le format d'�change ?
    En copiant-collant les classes C++ d'un des programmes dans le code VB de l'autre programme ?

    Si vous voulez communiquer entre programme, utilisez l'IPC adapt�.

    Le plus proche de votre "logique", serait que l'objet de type EParams soit s�railis� et envoi� vers la console.

    Avec ce m�canisme, n'importe quel programme pourra dess�rialiser l'objet avec les primitives de son langage (pensez � avoir un format de s�rialisation qui prend en charge le multi-versionning).
    Vous pourrez lier les ex�cutables dans une commande pipe (|) d'un quelconque shell, ou utiliser les primitives de cr�ation de processus avec redirection des flux d'entr� et de sortie standard
    Ces primitives sont sp�cifiques au syst�me d'exploitation et comme votre "execl" est une antiquit� sign� POSIX qui n'a pas cours sous Windows et que vous �tes sur un forum C++/CLI qui est sp�cifique � .NET ou Mono, on est loin du POSIX.

  3. #3
    Candidat au Club
    Femme Profil pro
    �tudiant
    Inscrit en
    Mars 2012
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 2
    Par d�faut
    Salut,
    Je suis sous Windows et �ane compile pas je viens de v�rifier
    Comment allez-vous partager le format d'�change ?
    En copiant-collant les classes C++ d'un des programmes dans le code VB de l'autre programme ?
    disons que les deux programmes contiennent pratiquement les m�mes classes et pour une raison p�dagogique je dois les s�parer

    Le plus proche de votre "logique", serait que l'objet de type EParams soit s�railis� et envoi� vers la console.
    comment? pouvez-vous me donner plus de d�tails.
    Merci

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 509
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 509
    Par d�faut
    disons que les deux programmes contiennent pratiquement les m�mes classes et pour une raison p�dagogique je dois les s�parer
    Pouvez-vous �tre plus explicite. Si l'on ne connait pas le motif pr�cis de ce d�coupage, il est difficile de vous aider.

    "pratiquement les m�mes classes", pratiquement comment ?
    Si elles sont identiques, il suffit de les mettre dans un librairie qui sera utilis� par les 2 programmes. Une librairie C est utilisable par quasiment tous les langages. Il faut donc "d�s-objectiser" l'API de ces classes (quitte � utiliser une classe template-wapper fourni dans la section hpp du fichier .h de l'API de la lib).

    S�rialiser un objet, c'est le convertir en une chaine de caract�re.
    D�serialiser un objet, c'est le recr�er depuis une chaine de caract�re.
    Tous les moyens sont bons pour arriver � ce r�sultat.
    Il existe bon nombre de librairie qui impl�mentent ces concepts de s�rialisation/d�serialisation.
    Vous pouvez, si vos objets ne sont pas trop complexes et ne changent pas beaucoup, le faire sans librairie, simplement en ayant des fonctions qui convertissent ces objets en chaines de caract�res et d'autres fonctions qui convertissent des chaines de caract�res en instances de ces objets.

    La console est l� pour faire passer ces chaines de caract�re d'un processus � un autre.

  5. #5
    Membre chevronn� Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Par d�faut
    Il faut refaire un petit cour de syst�me d'exploitation. La plus part des OS, ex�cute les programme dans des espaces m�moires qui leur est propre. En gros le programme A n'as pas le droit de taper dans la m�moire du programme B.
    Apr�s il existe des solutions pour contourner ce probleme, commun�ment appel� "Interprocess Communication".
    Par exemple tu pourrai s�rialis� ta classe dans une chaine pour la transmettre en ligne de commande � un autre programme. Le partage des code sources et lui par-contre fortement recommand�.

  6. #6
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 509
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 509
    Par d�faut
    Le partage des code sources et lui par-contre fortement recommand�.
    NON.

    Le couplage faible est lui fortement recommand�.

    Il ne faut pas imposer des langages et des biblioth�ques identiques au producteur et aux consommateurs de l'information.

    Si un consommateur utilise les m�mes technologies que le producteur, ce n'est pas le partage de code sources qu'il faut faire, mais l'utilisation d'une biblioth�que (statique ou dynamique) commune.

    Cela permet une meilleure gestion du versionning et simplifie la maintenance des composants communs.

Discussions similaires

  1. [AJAX] R�cup�rer une variable retourn�e par ajax
    Par renaud26 dans le forum jQuery
    R�ponses: 7
    Dernier message: 03/07/2015, 00h00
  2. R�cup�rer une valeur retourn�e par une url externe
    Par hadakamatcho dans le forum Coldfusion
    R�ponses: 2
    Dernier message: 17/10/2012, 14h17
  3. R�cup�rer une valeur retourn�e par Ajax
    Par Akazed dans le forum G�n�ral JavaScript
    R�ponses: 0
    Dernier message: 23/01/2012, 11h50
  4. R�cup�rer une valeur retourn�e par une url
    Par Math77 dans le forum G�n�ral JavaScript
    R�ponses: 8
    Dernier message: 16/03/2011, 08h14
  5. R�ponses: 1
    Dernier message: 13/04/2010, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo