将C#方法暴露给非托管

时间:2012-03-22 12:57:36

标签: c# .net il

“可能重复”中的方法与书中的方法不同。本书的方法是在编译后通过反编译,重新编译过程扩展托管的.dll。您认为完全重复的方法实际上是预编译技术。我更喜欢书中的方法,因为它更具风格AOP。谢谢你的链接。我也将探索这条大道

Expert .NET 2.0 IL Assembler 中,在第18章第387页中,Serge Lidin谈到了创造性的Round-Tripping。他说,“ILAsm允许您将托管方法导出为非托管方式 切入点“。

我还没有听说过其他任何地方。这是你可以在PostSharp中做的事吗?是否有可下载的代码/脚本使用此技术的示例?

为了澄清,我不想使用COM或托管C ++。那么通过thunking实现从C / C ++调用C#方法的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

ildasm,更改corflags,添加v-table信息和导出功能,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(您所引用的第一版)