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 :

C++ natif/.NET: Probleme pour charger une mixed mode DLL a partir d'un exe natif


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 49
    Points
    49
    Par défaut C++ natif/.NET: Probleme pour charger une mixed mode DLL a partir d'un exe natif
    Bonjour a tous,
    Mon probleme est le suivant:
    J'ai un programme completement unmanaged qui charge dynamiquement une DLL en mixed mode (un wrapper d'une pure .NET DLL) en utilisant LoadLibrary. Tout se passe tres bien a partir en local mais a partir d'un network drive le programme plante bien sur a cause de manque de permissions CAS. Le probleme c'est que l'exception generee est une exception managed et ne peut etre interceptee dans mon code natif. Donc ma question est la suivante: Est-ce qu'il y a un moyen de rendre le chargement de ma DLL optionnel? cad en cas de pb (.NET framwork pas installe, permissions insuffisante) je charge pas tout simplement la DLL?

    J'espere que j'etais assez clair

    Merci d'avance

    AC

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    il y a des moyens d'intercepter des exceptions managées depuis du code natif, ca te suffirait ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 49
    Points
    49
    Par défaut
    Sauve moi avec les liens alors mais pas en passant par du COM Interop car ca je dois eviter!

    Merci d'avance

    AC

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    hein ... qui a dit que je t'ai oublié ?

    bon, alors, pas de com interop ... pourtant, souvent, le test du retour du HRESULT suffit

    sinon, essaie en encapsulant l'appel dans qqchose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	__try
    	{
    	      // appel
    	}
    	__except(GetExceptionCode() == ('àCOM') ? EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) // ('àCOM') = 0xE0434F4D
    	{
    		std::cout << "Exception managée attrapée depuis le code natif" << std::endl;
    	}

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 46
    Points : 49
    Points
    49
    Par défaut
    C'est ce que j'appelle un coup de genie

    Merci bcp pout ton aide

    AC

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

Discussions similaires

  1. Probleme pour charger une DLL
    Par labluegirl dans le forum Bibliothèques
    Réponses: 26
    Dernier message: 02/04/2009, 11h36
  2. Réponses: 1
    Dernier message: 18/07/2006, 16h44
  3. Réponses: 3
    Dernier message: 11/11/2005, 12h59
  4. [VB.NET] Probleme pour réutiliser une sockets ??
    Par fdiedler dans le forum Windows Forms
    Réponses: 12
    Dernier message: 10/03/2005, 14h37
  5. Réponses: 2
    Dernier message: 08/08/2003, 17h30

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