“可能重复”中的方法与书中的方法不同。本书的方法是在编译后通过反编译,重新编译过程扩展托管的.dll。您认为完全重复的方法实际上是预编译技术。我更喜欢书中的方法,因为它更具风格AOP。谢谢你的链接。我也将探索这条大道
在 Expert .NET 2.0 IL Assembler 中,在第18章第387页中,Serge Lidin谈到了创造性的Round-Tripping。他说,“ILAsm允许您将托管方法导出为非托管方式 切入点“。
我还没有听说过其他任何地方。这是你可以在PostSharp中做的事吗?是否有可下载的代码/脚本使用此技术的示例?
为了澄清,我不想使用COM或托管C ++。那么通过thunking实现从C / C ++调用C#方法的最佳方法是什么?
答案 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(您所引用的第一版)