Беспорядок в смешанных сборках C ++ / CLI
-
05-07-2019 - |
Вопрос
Есть ли способ скрыть собственные определения заполнителей от управляемых метаданных (видимых в Reflector)?
Я создаю смешанную сборку C ++ / CLI, содержащую некоторые файлы, скомпилированные с / clr, а некоторые скомпилированные без.
Я использую boost и MFC только в собственном коде, но заголовки boost / MFC по-прежнему необходимо включать в файлы управляемого кода. Как только это будет сделано (независимо от того, находятся ли они в неуправляемом блоке #pragma или нет), все пространства имен и имена классов (хотя и не имеют реальной реализации) из boost и ATL (он же MFC) появятся в представлении Reflector сборка. р>
Это не серьезная проблема (в конце концов, все по-прежнему работает нормально), но это похоже на беспорядок, и я бы предпочел, чтобы его там не было. Есть ли способ избавиться от этого?
Решение
Нет, от него невозможно избавиться.
Идея C ++ / CLI состоит в том, что управляемый код должен иметь доступ к неуправляемому коду. Единственный способ сделать это - создать управляемую оболочку для всех функций C ++.
Я пробовал " связывание на уровне функций " и «оптимизация всей программы»; но это не уменьшило количество экспортируемых символов.