2012-03-22 4 views
7

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

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

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

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

+0

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

+3

[нижний ответ этого вопроса] (http://stackoverflow.com/a/4605486) ссылки на [Неуправляемый экспорт] (https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports), который звучит как ваша цитата. – Rup

+0

@Rup: да, это так. Спасибо что подметил это. Жаль, что нет загружаемого загружаемого примера. – sgtz

ответ

2

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/

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

Смежные вопросы