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

OleCheck et EOleSysError


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de sylvain.cool
    Profil pro
    �tudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Par d�faut OleCheck et EOleSysError
    Bonjour,

    J'ai un programme qui utilise des serveurs DCOM. Pour me connecter � ces serveurs, j'utilise la fonction CreateRemote(). Cette fonction prend en param�tre l'@IP du serveur.

    Quand le PC distant n'est pas allum�, j'ai une erreur HR CHECK qui s'affiche � l'ecran. Cette erreur est lanc�e par OleCheck. Voici la doc:
    OleCheck est utilis� pour envelopper de nombreuses routines COM, pour que si la routine �choue, l'utilisateur pourra la g�rer dans l'exception d�clench�e.

    Si ECode est inf�rieur � z�ro, OleCheck d�clenche une exception EOleSysError contenant le code d'erreur.
    J'aimerais que cette erreur n'apparaisse pas � l'ecran, mais je ne sais pas comment faire.

    De plus, je voudrais attraper l'exception lanc�e, mais je n'y arrive pas.

    Voici mon code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		//Création du serveur de calcul distant 
    		WideString addrServ = serverAddr;
    		TCOMIObjetRun objetDistant;
    		try
    		{
    			objetDistant = CoObjetRun::CreateRemote(addrServ.c_bstr());
    		}
    		catch(Comobj::EOleSysError &eOE)
    		{
    			texte = "";
            }
    Je ne passe jamais dans le catch, mais je ne comprend pas pourquoi.
    Je n'ai pas trouv� de doc correcte concernant la fonction CreateRemote.

    Quelqu'un peut-il m'aider?

  2. #2
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par d�faut
    Bonjour,

    je ne vais pas r�soudre ton probl�me en profondeur, mais je pense que si tu n'attrapes pas l'erreur, c'est que ton catch ne r�cup�re pas le bon objet. Es-tu s�r que la fonction envoie bien une erreur Comobj::EOleSysError et pas CoObjetRun::EOleSysError.

    De toutes fa�ons, tu peux toujours faire un catch (...) { qui doit normalement tout attrap�. Si �a ne marche pas, alors le probl�me est plus compliqu�.

  3. #3
    Membre �clair� Avatar de sylvain.cool
    Profil pro
    �tudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Par d�faut
    Le catch(...) n'apporte rien. Je n'attrape l'exception.

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par d�faut
    J'ai trouv� deux trucs int�ressants pour toi dans la doc de C++ builder :

    Tout d'abord �a :
    Description

    Le code de d�bogage inclus dans la gestion des appels COM dans C++Builder appelle DebugHlpr_PROMPT pour afficher une bo�te message permettant � l'utilisateur de d�cider s'il faut d�clencher une exception, ignorer le probl�me d�tect� ou basculer sur le d�bogueur. Cette routine est appel�e quand des assertions �chouent ou quand un appel d'interface renvoie un code d'erreur, sauf si NO_PROMPT_ON_ASSERTE_FAILURE ou NO_PROMPT_ON_HRCHECK_FAILURE sont appel�es.

    Le param�tre caption sp�cifie le libell� de la bo�te message. Pour les �checs d'assertions, c'est "_ASSERTE:". �. Pour les erreurs renvoy�es dans un HRESULT c'est "HRCHECK:". �.

    Le param�tre msg est un message donnant des d�tails sur le probl�me rencontr�.

    DebugHlpr_PROMPT renvoie IDYES s'il faut d�clencher une exception, IDNO si le probl�me doit �tre ignor� et IDCANCEL pour passer sur le d�bogueur.
    Et �a
    Les appels d'interface g�n�r�s automatiquement testent si un code d'erreur a �t� renvoy� (HRESULT). Par d�faut, quand une valeur d'erreur est renvoy�e, une bo�te message appara�t demandant s'il faut d�clencher une exception. D�finissez NO_PROMPT_ON_HRCHECK_FAILURE avant la compilation pour supprimer l'affichage de la bo�te message. Quand NO_PROMPT_ON_HRCHECK_FAILURE est d�finie, une valeur d'erreur renvoy�e d�clenche une exception sans interaction utilisateur.
    J'esp�re que �a peut t'aider. Il faudrait donc d�finir NO_PROMPT_ON_HRCHECKFAILURE, mais �a je sais pas comment.

  5. #5
    Membre �clair� Avatar de sylvain.cool
    Profil pro
    �tudiant
    Inscrit en
    Janvier 2006
    Messages
    242
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 242
    Par d�faut
    �a m'aide compl�tement!

    J'ai d�finis NO_PROMPT_ON_HRCHECK_FAILURE dans les options du projet->"chemin et definitions"->"definitions conditionnelles".

    Maintenant, je n'ai plus la fen�tre et j'arrive � attraper l'exception Comobj::EOleSysError.

    Bref, c'est exactement ce que je voulais.

    Tu les as trouv�s o� tes infos? Parce que je trouve pas grand chose dans l'aide.

    En tout cas, merci beaucoup grouff!

  6. #6
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 21
    Par d�faut
    Bon � savoir pour les d�finitions conditionnelles, �a m'aidera si j'ai des erreurs dans ce genre.
    Sinon les infos je les ai trouv� sur le fichier d'aide de lC++ builder.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Objet COM EOleSysError
    Par DuffNut dans le forum API, COM et SDKs
    R�ponses: 8
    Dernier message: 05/09/2013, 19h30
  2. Exception EOleSysError sous Seven
    Par juju1988 dans le forum Langage
    R�ponses: 4
    Dernier message: 27/07/2012, 10h29
  3. "coinitialize n'a pas �t� appel�" EOleSysError
    Par XavierHWT dans le forum C++Builder
    R�ponses: 0
    Dernier message: 07/05/2009, 09h39
  4. EoleSysError classe non enregistr�e
    Par ManuBEI dans le forum Langage
    R�ponses: 1
    Dernier message: 18/11/2008, 17h50
  5. EoleSysError classe non enregistr�e
    Par Daniel Magron dans le forum Delphi
    R�ponses: 10
    Dernier message: 19/11/2006, 11h36

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