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 :

Service Web asp.net utilisant une DLL MFC


Sujet :

C++/CLI

  1. #1
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut Service Web asp.net utilisant une DLL MFC
    Je dispose d'une Dll C++ non managée qui fournie des classes, cette dll utilise les mfc via dll partagées.


    J’ai réalisé une dll wrapper en c++ managé qui utilise ma Dll C++ non managée (cependant je suis obliger d'utiliser les mfc en tant que dll partagées sinon mon wrapper ne compile pas.

    en voici le contenu :

    namespace Wrapperlib
    {
    public ref class Wrapper
    {
    public:
    Wrapper();
    ~Wrapper();
    private:
    CDll * m_pCDll ; //objet de la dll non manage
    };
    }


    Lorsque je j'utilise mon wrapper dans une application C# windows form tout ce passe bien.

    Cependant je n'arrive pas à utiliser mon wrapper dans un service web asp.net

    J’ai un message d'erreur lors que l'ouverture du fichier .asmx dans le navigateur (Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)

    J’ai pourtant ajouté la référence et le namespace de manière analogue à l'application windows form

    J’ai l'impression que le service web n'arrive pas à charger le wrapper ainsi que les dll dont il dépend

    Avez-vous une idée ?

    Merci

  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
    Par défaut
    la dll MFC est elle dans le path ?
    l'assembly est elle dans le GAC ?

  3. #3
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    non je n'ai pas enregistré mon wrapper dans le GAC

    je viens d'essayer d'ajouter mon wrapper ainsi que les dlls dont il depend dans le repertoire c:\windows

    sans succes

  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
    Par défaut
    est-ce que ca marche mieux si dans le wrapper, tu précises explicitement le chemin où se trouve la dll ?

  5. #5
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    je ne comprends pas,

    ca marche avec les windows form mais pas dans mon service web.
    comment definir le chemin de la dll dans le wrapper ?

  6. #6
    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
    Par défaut
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            [DllImport("User32.dll")]
            public static extern int GetSystemMetrics(int nIndex);
    tu mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            [DllImport(@"c:\...\...\User32.dll")]
            public static extern int GetSystemMetrics(int nIndex);

  7. #7
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 7
    Par défaut
    J’ai solutionné le problème :

    Voici mon analyse :

    L’ajoute un nouveau projet web service à ma solution via :
    Ajouter > Nouveau projet > Autres langage > Visual C#> Web > Application de service web ASP.net

    Lorsque j’ajoute à mon web service la référence sur mon wrapper via :
    Ajouter une référence > projet > « MonWrapper »

    VS crée un répertoire bin dans le projet web service et il y place la dll du wrapper, celui-ci doit en avoir besoin pour compiler le web service. Cependant lors de l’exécution (même en debug sur VS), l’appel d’une fonction du web service nécessite la présence des dll dans le path.

    Il faut donc bien faire attention de disposer de la même dll dans le path et dans le répertoire bin du web service sinon il y a incohérence et le chargement de la dll échoue et génère une erreur.

    Merci Nico, pour tes infos

Discussions similaires

  1. [SP-2010] déploiement d'un service web asp.net
    Par orfeu dans le forum SharePoint
    Réponses: 3
    Dernier message: 27/06/2012, 14h13
  2. [SP-2007] création d’un service Web ASP.NET
    Par zdig10 dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 25/08/2011, 11h32
  3. [VB.NET] Utiliser une DLL C++
    Par leeloo64 dans le forum VB.NET
    Réponses: 5
    Dernier message: 11/02/2011, 15h15
  4. Utiliser un service web asp.net dans un client Delphi
    Par oclone dans le forum Débuter
    Réponses: 1
    Dernier message: 15/05/2009, 14h10
  5. [.NET] utiliser une dll c++ sous excel
    Par ooxoo dans le forum VC++ .NET
    Réponses: 7
    Dernier message: 04/04/2008, 09h43

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