Могут ли сборки C ++. Net быть легко декомпилированы?

Я знаю, что все сборки можно как-то декомпилировать, но C # & Приложения VB проще всего декомпилировать в исходный код с помощью таких инструментов, как (.Net Reflector).

Поэтому мой вопрос: если бы я программировал приложение с использованием сборок и функций .Net на C ++, было бы легко декомпилировать его, как если бы это было приложение C # или VB с отражателем .Net и такими инструментами?
Хорошо, если бы я запрограммировал это без использования какой-либо функции из .Net framework и сделал UI только тем, что вызывает сборки .Net, было бы легко также дешифровать?

Мой вопрос похож на этот: Может ли этот проект C ++ быть декомпилирован с помощью таких инструментов, как .NET Reflector?
но никто не ответил ему правильно, так кто-нибудь может мне помочь?

Я хочу использовать .Net и C ++, чтобы мое приложение было скомпилировано в Native. & Управляемый код!

3

Решение

Там нет «C ++. Net». Существует C ++ / CLI, который является C ++ -подобным языком, который можно использовать для склеивания собственного кода C ++ с миром .NET. Управляемый код, который вы пишете в нем (ссылки на классы), будет скомпилирован в MSIL. «Нативный» код будет компилироваться либо в MSIL, либо в нативный. Если вы хотите скомпилировать некоторые части в нужный вам код

#pragma managed(push, off)

void foo() {}

#pragma managed(pop)

в вашем источнике. управляемая прагма может использоваться для выбора цели компиляции для каждой функции. Или вы можете скомпилировать без /clr пометьте модуль и настройте проект для создания сборки в смешанном режиме.

Помните, что маршалинг нативных типов в .NET и обратно может серьезно повредить производительности вашего приложения — и это происходит каждый раз, когда вы пересекаете нативно управляемую границу. Но взаимодействие между таким встроенным нативным кодом и управляемым кодом намного быстрее, чем обычный p / invoke.

Смотрите также этот вопрос: C ++ CLI. Нативные части написаны на чистом C ++, но скомпилированы в CLI так же быстро, как чистый C ++?

6

Другие решения

Других решений пока нет …