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

Signaler
Messages postés
2
Date d'inscription
lundi 1 février 2010
Statut
Membre
Dernière intervention
27 avril 2010
-
Messages postés
2
Date d'inscription
lundi 1 février 2010
Statut
Membre
Dernière intervention
27 avril 2010
-
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

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
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.
Messages postés
2
Date d'inscription
lundi 1 février 2010
Statut
Membre
Dernière intervention
27 avril 2010

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