Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1213 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  IDL, code utilisateur, exceptions, threads, enfin plein de trucs...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

IDL, code utilisateur, exceptions, threads, enfin plein de trucs...

n°1317489
Mackila
Posté le 02-03-2006 à 23:51:59  profilanswer
 

Bonsoir les gens  :jap:  
 
Je suis en train d'intégrer du code C++ (MFC, avec des threads, des exceptions, toussa) au logiciel de calcul IDL (tiens au passage j'ai vu personne en parler dans le sujet-à-softs-qui-font-des-calculs).
 
IDL propose un moyen de linker des routines en C++, du moment qu'elle sont déclarées comme il faut dans une DLL à placer dans le répertoire d'IDL.
Ca, je sais faire.
 
Problème : IDL n'aime pas les threads. Suffit de faire le moindre CreateThread() ou équivalent pour que le bazar se retrouve bloqué. Sauf que le code que je veux intégrer à IDL, il est tout plein de threads (et que j'ai pas envie de tout me retaper).
Solution actuelle : La DLL de fonctions IDL ne contient que du code qui vérifie la validité des arguments recus, formate tout ca dans une jolie commande et envoie le tout via sockets à un programme séparé (qui donc lui peut se permettre de balancer des threads comme il veut :o ).
Jusque la, tout baigne.
J'ai fait ce qu'il fallait pour que si une exception C++ arrivait dans le code de la DLL (qui rappellons le se contente de transmettre la demande au processus de calcul), cette erreur soit reportée sous IDL en utilisant le système de gestion d'erreur de IDL.
(un

throw exception("coucou" ) ;

dans le code de la DLL provoque une exception IDL

%coucou

).
Sauf que ca marche que pour les exceptions lancées dans le code de la DLL (qui finalement ne fait pas grand chose).
J'aurais bien voulu qu'IDL puisse récupérer les exceptions lancées dans le code utile (celui qui se trouve, pour ceux qui n'ont pas suivi, dans un processus séparé avec lequel IDL communique via sockets).
Pour cela, je me suis démerdé à faire une magouille avec les sockets : quand le code utile lance une exception, le code de transfert réseau (qui récupère les commandes arrivant depuis IDL et qui lance les calculs demandés) la chope, flingue la connexion, et le code de la DLL (qui s'était connecté et espérait gentilment qu'en face on ne le jetterait pas comme ca) essaie une nouvelle connexion en demandant "mais pourquoi tu m'a jetté". Et la on lui répond la description de l'exception (que l'on avait préalablement mémorisée).
 
Soit.
 
Ca a l'air de fonctionner.
 
Mais c'est lourd.
 
J'en ai marre de me taper masse code réseau, gérer plein de trucs toussa juste parceque je veux :
invoquer une procédure distante et récupérer ou la valeur renvoyée, ou l'exception lancée. Le tout via réseau (ou autre si vous avez quelque chose à proposer)
 
La question (bah ouaip parcequ'il y a une question, sinon j'me (et vous) ferait pas chier à vous raconter tout ca) :
 
Ca existerait pas déja une bibliothèque toute faite qui puisse faire ce que je me casse la tête à faire tout seul ? (sachant que le but c'est pas seulement d'invoquer et de récupérer le résultat du type attendu, je voudrais aussi récupérer les exceptions lancées...)
 
 

mood
Publicité
Posté le 02-03-2006 à 23:51:59  profilanswer
 

n°1317490
kadreg
profil: Utilisateur
Posté le 02-03-2006 à 23:53:23  profilanswer
 

c'est quoi IDL ? Je pensais que ça allait causer corba


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°1317492
Mackila
Posté le 03-03-2006 à 00:00:01  profilanswer
 

J'ai mis un lien dans le premier post ( http://www.rsinc.com/idl/whatsnew.asp ) mais c'est vrai qu'il est pas tres visible (et que surtout c'est de se taper à lire le site).
 
IDL c'est un soft de calcul numérique orienté imagerie. Ca travaille sur des matrices, ca fait des calculs, ca te montre le résultat avec des graphes toussa. Après faut pas trop m'en demander, je fais pas de calculs moi  [:petrus75] .
 
edit : tiens ya un pdf récapitulatif de tout ce que sait faire le bazar http://www.rsinc.com/idl/pdfs/IDL62_FuncSum.pdf

Message cité 1 fois
Message édité par Mackila le 03-03-2006 à 00:02:12
n°1317630
slash33
Posté le 03-03-2006 à 11:23:03  profilanswer
 

Mackila a écrit :

IDL c'est un soft de calcul numérique orienté imagerie.


C'est aussi et surtout un langage de description d'interface des composants logiciels respecté en particulier par Corba.

n°1317845
Mackila
Posté le 03-03-2006 à 15:08:37  profilanswer
 

Oui, ca j'en ai une vague idée, mais c'est pas le sujet :o !
 
Le sujet c'est : "Comment vous feriez pour faire un appel de fonction à travers le réseau, gestion des exceptions comprise ?"


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  IDL, code utilisateur, exceptions, threads, enfin plein de trucs...

 

Sujets relatifs
Exceptions imbriquéespage plein ecran
[resolu] sdl sous code::blocksSignification d'une ligne de code en PHP
plein ecranObtenir un Code Source avec redirection vers une frame
externaliser du code antcomment deverrouiller le code autogénéré dans Netbeans 4.1 ?
difficulté à appliquer les classes avec un code cssdechiffrer un code???????????
Plus de sujets relatifs à : IDL, code utilisateur, exceptions, threads, enfin plein de trucs...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR