разоблачение методов C # неуправляемым - PullRequest
6 голосов
/ 22 марта 2012

этот подход в «возможном дубликате» отличается от подхода в книге. Подход книги заключается в расширении управляемого .dll после компиляции с помощью процесса декомпиляции и перекомпиляции. Подход, который вы считаете точным дубликатом, на самом деле является методом предварительной компиляции. Я предпочитаю метод в книге, потому что это больше AOP в стиле. И все же спасибо за ссылку. Я также буду исследовать этот проспект

В Expert .NET 2.0 IL Assembler , в гл. 18 с. 387 Серж Лидин говорит о творческом круговом отключении. Он говорит: «ILAsm позволяет экспортировать управляемые методы как неуправляемые Точки входа ".

Я не слышал, чтобы об этом говорили где-то еще. Это то, что вы можете сделать в PostSharp? Есть ли загружаемый код / ​​примеры использования этой техники?

Для пояснения, я не хочу использовать COM или Managed C ++. Так каков наилучший способ реализовать вызов метода C # из C / C ++ через thunking?

1 Ответ

3 голосов
/ 02 апреля 2012

ildasm, измените corflags, добавьте информацию v-таблицы и функцию экспорта, ilasm и все готово.

Вот статья проекта кода: http://www.codeproject.com/Articles/37675/Simple-Method-of-DLL-Export-without-C-CLI

, основанная на:

Мёртвая ссылка: http://www.csharphelp.com/2007/03/exporting-managed-code-as-unmanaged/

Wayback Machine для мёртвой ссылки: https://web.archive.org/web/20140213030149/http://www.csharphelp.com/2007/03/exporting-managed-code-as-unmanaged/

В основе: http://www.amazon.com/Inside-Microsoft-NET-IL-Assembler/dp/0735615470 (перваяиздание книги, на которую вы ссылаетесь)

...