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++ Discussion :

Exécuter Matlab C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 14
    Par défaut Exécuter Matlab C++
    Bonjour (Bonsoir pour certains ),

    J'ai développé une API en C++ qui exécute des algorithmes réalisés sur Matlab.
    J'emploi la bibliothèque engine.h pour appeler mon code Matlab.
    Pour ce faire j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (!(ep = engOpen(NULL))) {
    	MessageBox((HWND)NULL, (LPSTR)"Can't start Matlab engine", (LPSTR) "test.cpp", MB_OK);
    	exit(-1);
    }
    Seulement, je dispose d'une machine sur laquelle 2 versions de Matlab sont installées.
    Est-il possible de préciser la version à utiliser ? Et dans ce cas, comment faut-il procéder ?

    Je vous remercie par avance,
    Cordialement.

    Ps : Ce sujet doit-il être présent sur le forum Matlab ou C++ ...

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    La réponse théorique est:
    Soit en passant par une bibliothèque statique à l'édition des liens du programme (donc, elle sera incluse dedans, et c'est elle qui sera utilisée)
    Soit en utilisant le bon chemin de recherche de bibliothèque dynamique lors de l'exécution du programme.

    A noter que engine.h n'est pas une bibliothèque, mais un fichier d'en-tête C++ (ou C), fourni par une bibliothèque

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 14
    Par défaut
    Bonjour,

    Merci pour cette première réponse.
    Je me demandais s'il était possible d'indiquer la version à appeler lors de l'exécution de engOpen. Je pensais indiquer le chemin de l'exécutable en tant que paramètre d'appel (n'ayant pas accès à la machine en question dans l'immédiat je ne peux pas tester). Pensez-vous que cela peut fonctionner ?
    Je ne connais pas toutes les en-têtes ni bibliothèques, peut-être que l'une d'elle me permettrait d'ajouter cette précision et d'exécuter la bonne version de Matlab.

    Cordialement.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Fort heureusement Matlab a une doc.
    https://uk.mathworks.com/matlabcentr...use-matlab-eng
    The ability to programmatically select the version of MATLAB that is opened when issuing the engOpen or engOpenSingleUse function is not available in MATLAB 7.1 (R14SP3). On a Windows platform, the version of MATLAB that is used when issuing these functions is the last one that was registered by starting MATLAB with the /regserver option.
    Ca date de 2009 mais sauf changement que tu trouveras dans la doc, non tu ne peux pas.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2016
    Messages : 14
    Par défaut
    Oh ok ... Je te remercie pour cette précision.
    La machine en question ne dispose malheureusement que de Windows ... Je verrai avec mes supérieurs si on a la possibilité d'y installer un linux en dual ou par VM.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Exécution matlab avec JNA
    Par Pikouse dans le forum Eclipse
    Réponses: 0
    Dernier message: 11/09/2009, 15h55
  2. exécutable matlab ouverture c++
    Par worlds_angel dans le forum MATLAB
    Réponses: 1
    Dernier message: 27/05/2009, 14h46
  3. Convertir un code C++ en un exécutable MATLAB
    Par abir2007gallas dans le forum MATLAB
    Réponses: 1
    Dernier message: 11/04/2008, 16h06
  4. [Compiler] Exécutable MATLAB ?
    Par harris_macken dans le forum MATLAB
    Réponses: 20
    Dernier message: 04/12/2007, 17h34
  5. Exécutable MATLAB sous Linux
    Par clarabide dans le forum MATLAB
    Réponses: 1
    Dernier message: 05/12/2006, 09h10

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