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

VC++ .NET Discussion :

'System::Reflection::Assembly'*: une classe d�clar�e comme 'abstract' ne peut pas �tre instanci�e


Sujet :

VC++ .NET

  1. #1
    Membre averti
    Profil pro
    Resp dev
    Inscrit en
    Novembre 2002
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : Resp dev

    Informations forums :
    Inscription : Novembre 2002
    Messages : 18
    Par d�faut 'System::Reflection::Assembly'*: une classe d�clar�e comme 'abstract' ne peut pas �tre instanci�e
    Bonjour,

    Sous visual studio c++ 2010 je cherche � compiler une dll, qui � pour objectif de charger une assembly.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Assembly assembly = Assembly.LoadFrom("madll.dll");
    Le probl�me est que le compilateur me jette :
    error C3622: 'System::Reflection::Assembly'*: une classe d�clar�e comme 'abstract' ne peut pas �tre instanci�e.
    Avez vous une id�e du probl�me?

    Merci.

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    MSDN :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    public:
    static Assembly^ LoadFrom(
    	String^ assemblyFile
    )
    C'est une r�f�rence manag�e Assembly^,
    pas un vulgaire objet C++ ayant un constructeur de copie.

  3. #3
    Membre averti
    Profil pro
    Resp dev
    Inscrit en
    Novembre 2002
    Messages
    18
    D�tails du profil
    Informations personnelles :
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : Resp dev

    Informations forums :
    Inscription : Novembre 2002
    Messages : 18
    Par d�faut
    Merci. C'est beaucoup mieux ainsi.
    C'est la premier fois que j'�cris du MC++ d'o� mes lacunes.

    J'en profite pour vous demander : je dois utiliser une interface qui est d�clar� dans une dll.

    Je crois savoir qu'il faut l'ajouter en tant que r�f�rence dans le projet. C'est ce que j'ai fait. Mais je ne parviens pas � compiler car le programme je connais pas le nom de ma classe.

    J'ai essay� d'include "using <madll.dll>" mais le compilateur ne trouve pas.

    Avez vous une id�e?

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 505
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 505
    Par d�faut
    C'est du C++/CLI, le Managed C++ n'est plus depuis d�j� un certain temps.

    Avec VS2010, c'est du C++/CLI (� moins d'utiliser le flag proche de "/oldSyntaxe", et l�, elle pique vraiment les yeux, cette syntaxe ).

    Il faut bien distinguer les concepts de dll, d'assembly et de namespace.

    Un assembly est une unit� de packaging de composant logiciel .NET. Ce package est tr�s souvent, mais pas forcement, constitu� d'une seule dll.

    Pour pouvoir utiliser "directement" une classe ou une interface qui est d�finie dans un assembly, il faut la r�f�renc� dans le projet du code qui l'utilise. C'est l'�quivalent de l'inclusion d'un .h dans le stdafx.h ET de l'ajout de la lib associ�e dans les options de l'�diteur de lien, dans le cas d'une utilisation du librairie statique ou dynamique en C++ "standard".
    Pour faire ce r�f�rencement dans un projet sous VS2010, cela ce fait par un click droit sur le projet dans l'explorateur de solution, choisir "References..." dans le menu contextuel, cliquer sur le bouton "Add New Reference..." et choisir dans les diff�rents onglets affich�s en fonction du type de r�f�rence.
    Utilisez l'onglet "Browse" si l'assembly � utiliser est fourni sous forme de dll.
    Utilisez l'onglet "Projects" si l'assembly � utiliser est le r�sultat de la compilation d'un autre projet dans la solution VS2010.

    Cette op�ration permet d'utiliser les types d�finis dans l'assembly, mais il ne faut pas oublier que chaque type est d�fini dans un espace de nom, qui n�est forcement le nom de la dll contenant l�assembly. Le concept d'espace de nom .NET est exactement le m�me que celui du C++ standard.

    Comme en C++ standard, d�clare seulement que les types d�finis dans l'espace de nom toto seront accessible directement sans �crire l'espace de nom.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // pas de using
    System::Reflection::Assembly^ assembly1 = System::Reflection::Assembly.LoadFrom("madll.dll");
     
    using namespace System::Reflection;
     
    // après using namespace 
    Assembly^ assembly2 = Assembly.LoadFrom("madll.dll");
    Cela n'ajoute d'aucune mani�re une r�f�rence � un assembly, comme "using namespace std;" ne dispense pas d'inclure les .h de la stl en C++.

Discussions similaires

  1. R�ponses: 7
    Dernier message: 27/02/2015, 12h59
  2. R�ponses: 13
    Dernier message: 09/03/2013, 19h12
  3. System . Reflection . Assembly
    Par olivier1209 dans le forum VB.NET
    R�ponses: 3
    Dernier message: 07/02/2013, 16h48
  4. [API Reflection] Supprimer une classe du cache
    Par aurelienDC dans le forum API standards et tierces
    R�ponses: 4
    Dernier message: 13/04/2009, 19h25
  5. [Reflection]parser une classe de java.
    Par burkan21 dans le forum API standards et tierces
    R�ponses: 9
    Dernier message: 02/12/2005, 21h05

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