Вопрос

Есть ли способ скрыть собственные определения заполнителей от управляемых метаданных (видимых в Reflector)?

Я создаю смешанную сборку C ++ / CLI, содержащую некоторые файлы, скомпилированные с / clr, а некоторые скомпилированные без.

Я использую boost и MFC только в собственном коде, но заголовки boost / MFC по-прежнему необходимо включать в файлы управляемого кода. Как только это будет сделано (независимо от того, находятся ли они в неуправляемом блоке #pragma или нет), все пространства имен и имена классов (хотя и не имеют реальной реализации) из boost и ATL (он же MFC) появятся в представлении Reflector сборка.

Это не серьезная проблема (в конце концов, все по-прежнему работает нормально), но это похоже на беспорядок, и я бы предпочел, чтобы его там не было. Есть ли способ избавиться от этого?

Это было полезно?

Решение

Нет, от него невозможно избавиться.

Идея C ++ / CLI состоит в том, что управляемый код должен иметь доступ к неуправляемому коду. Единственный способ сделать это - создать управляемую оболочку для всех функций C ++.

Я пробовал " связывание на уровне функций " и «оптимизация всей программы»; но это не уменьшило количество экспортируемых символов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top