Utiliser Matlab avec Borland, aidez moi :'o

Etudiant6901 Messages postés 2 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 17 mars 2009 - 10 mars 2009 à 15:31
AgroPT Messages postés 1 Date d'inscription dimanche 11 avril 2010 Statut Membre Dernière intervention 2 septembre 2010 - 2 sept. 2010 à 21:41
Bonjour à tous,

Je suis novice en programmation, et je suis confronté à un problème que je n'arrive pas à résoudre.
Je vais commencer par me présenter, je suis étudiant en master de génie électrique, j'ai quelques notions de programmation en C, Matlab, assembleur, mais d'un niveau scolaire, je ne sais pas faire grand chose...

Je travail en ce moment sur un projet (imposé par un enseignant).
Le projet consiste à réaliser un programme PC de traitement de données.
J'ai à ma disposition Borland comme environnement, simple d'utilisation, et réalisation d'interface graphique simple également.
J'aimerais traiter des données (tableaus de valeurs) avec matlab.
(un calcul d'intégrale triple) mais je n'en suis pas encore là..

A l'heure actuelle je cherche déjà un moyen d'appeler matlab dans mon programme principal.
Je me suis documenté où j'ai pu, et j'ai trouvé plusieurs pistes de recherches.
Compiler ma fonction matlab en .c et l'intégrer dans Borland, ce qui inclus l'intégration de Bibliothèques matlab.
Mais je n'ai pas réussit à trouver un exemple concrès sur lequel me baser, ni la procédure, la démarche à suivre.

(je me répète, j'ai un niveau basique en programmation..)

Peu m'importe que Matlab doivent être installé sur la machine, je cherche déjà pour débutter une façon d'utiliser une fonction simple (une multiplication avec le retour des paramètres dans mon programme principal)

Quelqu'un à t'il déjà effectuer cela?
Est-ce possible avec Borland ?
Et si oui, pourriez vous me renseigner, m'aider..

Merci d'avance pour votre attention,
Cordialement,

4 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
11 mars 2009 à 14:05
Salut,

Le plus simple risque de faire une dll via matlab, et d'importer ses fonctions dans C++ Builder.

http://www.google.com/search?hl=fr&safe=active&client=firefox-a&rls=org.mozilla%3Afr%3Aofficial&hs=of3&q=build+dll+matlab+Compiler+toolbox&btnG=Rechercher&lr=' target='_blank'>Tu as la doc sur le compilo matlab qui a l'air très bien.

Un début d'aide sur les dlls, que ce soit avec VC, C++ Builder ou gcc, c'est toujours la même chose. dllimport pour importer une fonction, .lib en entrée du lieur.
0
Etudiant6901 Messages postés 2 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 17 mars 2009
17 mars 2009 à 20:15
Merci, j'ai jeté un oeil à tout ça et heu... bon c'est pas encore ça, je vais continuer de creuser un peu.

Sinon par curiosité, ne serais-ce pas possible de :

Créer ma fonction sous matlab.
La compiler avec le MCC de matlab (forme : mcc -m ma_fonction)
Là j'obtiens donc plusieurs fichiers (.c .h .lib .dll)
Jusque là, c'est comme me disais RT15
Je n'arrive pas encore à importer ça sous Bordland...
Je ne comprend pas, je ne trouve pas d'exemple concrès..
(Je vais continuer de chercher)

Mais, j'ai remarqué que le compilateur Matlab me donne aussi un fichier :
"ma_fonction.exe"

Ne serais-ce pas possible en langage C d'appeler simplement ce .exe ?
Il a 3 paramètres d'entrés, 1 de sortie.

Existe t'il une humm commande pour exécuter un .exe en C ?
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 mars 2009 à 13:49
Oui on peut exécuter un .exe en C. De divers manières : CreateProcess, ShellExecute, system... Nombreux exemples sur le web -> google.

Mais le problème est qu'on ne peut passer en paramètre qu'une chaîne de caractère et ne récupérer en résultat qu'un entier sur 32 bits. Alors je ne sais pas ce que fait ma_fonction.exe, si elle passe par des fichiers ou quoi...

Là j'obtiens donc plusieurs fichiers (.c .h .lib .dll)

Bin c'est "super". Il ne te reste plus qu'à parvenir à les exploiter. Il faut probablement que tu ajoutes le .h dans ton projet C++ Builder. Ce .h propose certainement la déclaration de la fonction que tu veux appeler.

Ensuite, il faudra mettre le .lib en entrée du lieur (Dans les options de compilation), sinon le linker te dira qu'il ne trouve pas des symboles. Si tu as une erreur style format du .lib invalide, il faudra que tu convertisses le .lib en un .lib Borland, ou que tu génère un .lib Borland à partir de la dll, avec les outils Borland fournis avec ton compilo Borland (implib...).

Finalement il faudra que la dll soit accessible à l'exécution de ton .exe final pour que celui-ci fonctionne.

C'est pas évident et il y a un certain nombre de pièges, mais ce n'est pas impossible : tu peux y arriver.

Courage.
0
AgroPT Messages postés 1 Date d'inscription dimanche 11 avril 2010 Statut Membre Dernière intervention 2 septembre 2010
2 sept. 2010 à 21:41
Bonsoir,

j'ai exactement la meme question que Etudiant6901 mais dans mon cas je souhaite importer un fonction d'une DLL Matlab dans un programme Borland Delphi 7 et non C++ Builder.

Désolé de poser cette question sur un forum dédié au C/C++ mais la similitude de ma demande avec celle de Etudiant6901 est étonnante.

Merci beaucoup pour l'aide que vous voudrez bien m'apporter car les en-tete de fonction de DLL Matlab c'est un peu la galère. Ils ont pas fait les choses pour faciliter leur utilisation...

Christophe C.
0
Rejoignez-nous