Question

Existe-t-il un moyen de masquer les définitions natives d'espaces réservés des métadonnées gérées (visibles dans Reflector)?

Je crée un assemblage C ++ / CLI en mode mixte contenant des fichiers compilés avec / clr et d'autres compilés sans.

J'utilise boost et MFC dans le code natif uniquement, mais les en-têtes boost / MFC doivent toujours être # inclus dans les fichiers de code managé. Dès que cela est fait (qu'ils soient dans un bloc #pragma non managé ou non), tous les espaces de noms et noms de classes (sans implémentation réelle) de boost et ATL (aka MFC) apparaissent dans la vue Réflecteur du assemblage.

Ce n’est pas un problème grave (après tout, les choses fonctionnent toujours bien), mais cela semble encombré et je préférerais que ce ne soit pas là. Y a-t-il un moyen de s'en débarrasser?

Était-ce utile?

La solution

Non, il n'y a pas moyen de s'en débarrasser.

L’idée sous C ++ / CLI est que le code managé devrait pouvoir accéder au code non managé. La seule façon de faire est de créer un wrapper managé pour toutes les fonctions C ++.

J'ai essayé "Lien de niveau de fonction". et "optimisation du programme complet". mais cela n'a pas réduit le nombre de symboles exportés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top