Identifier une classe C++ (non managee) dans C#

Keitamax Messages postés 2 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 27 avril 2010 - 26 avril 2010 à 21:53
Keitamax Messages postés 2 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 27 avril 2010 - 27 avril 2010 à 16:03
Bonjour,
(Tout d'abord, je ne savais pas vraiment sans quel sous-forum poser ma question, j'donc choisi celui qui se rapproche le plus je pense du concept ...)
Je suis en train de reprogrammer un add-in pour Visual Studio en C# (a partir d'un code déjà existant). Cet add-in est en fait une extension au Debugger qui me permettrait de voir le contenu des variables qui appartiennent a une classe personnelle, laquelle est écrite en C++ non managé (je ne peux pas réécrire cette classe en C# ou MC++).
Voici le bout de code original qui me pose problème:
[assembly: System.Diagnostics.DebuggerVisualizer(
typeof(VisualDebugger.ImageDebugger),
typeof(VisualizerObjectSource),
Target = typeof(System.Drawing.Image),
Description = "Image Visualizer")]


(le code complet de l'add-in original est ici)

Ce code permet donc de cibler les variables de type System.Drawing.Image, et je voudrais le changer pour être quelque chose de la forme Target = maClasseCpp.
J'ai fait un wrapper C++/CLI pour pouvoir exploiter les données de la variable, mais je ne vois vraiment pas comment indiquer a C# le type de ma classe C++, vu que je ne peux pas travailler directement avec...

J'espère avoir été clair. Merci d'avance pour votre aide, et bonne journée!
Max

2 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
26 avril 2010 à 23:41
Salut, je ne suis pas sûr de bien comprendre, tu ne peux pas obtenir le "Type" d'une variable non managée, la reflexion est une notion de la CLR par contre tu peux l'obtenir d'une classe C++/CLI.
0
Keitamax Messages postés 2 Date d'inscription lundi 1 février 2010 Statut Membre Dernière intervention 27 avril 2010
27 avril 2010 à 16:03
salut, merci pour ta réponse. En fait je voudrais que l'add-in C# puisse reconnaitre une variable de type I2dBufferAccessor (qui est ma classe C++ unmanaged), et après exploiter cette variable grâce a la classe C++/CLI qui sert de wrapper entre le C# et le C++. J'ai déjà essayé de mettre une chaine de caractères ( Target = "I2dBufferAccessor" ) mais ca ne compile pas.
Obtenir le type de ma classe wrapper C++/CLI ne me servirait a rien, puisque si je mets Target=typeof(Wrapper), le C# ne reconnaitra pas les variables de type I2dBufferAccessor mais celles de type Wrapper
0
Rejoignez-nous