,ldftn用于获取调用委托构造函数(即.ctor(object,native int))的函数指针地址。
如何获取用于在C#中构造委托的函数指针?在cil代码中获得'ldftn'函数指针,在cil代码中使用ldftn'
5
A
回答
5
您的问题的表述方式很难理解您实际尝试做什么。我认为,也许你想要的是这样的:
MethodInfo mi = ...
var ptr = mi.MethodHandle.GetFunctionPointer();
// now call a delegate .ctor using that ptr
3
如果你正在寻找的Reflection.Emit的代码应该是什么样子,然后是这样的:
il.Emit(OpCodes.Ldftn, yourMethodInfo);
il.Emit(OpCodes.Newobj, yourDelegateType.GetConstructors()[0]);
第一行加载函数指针到堆栈。第二行“传递”给委托的构造函数。 yourDelegateType
应该是类似于typeof(Func<string>)
等。
相关问题
- 1. .NET CIL代码大小
- 2. 更改CIL代码为本地代码在C#
- 3. 如何将CIL代码插入到C#
- 4. 在CIL中分支
- 5. 在CIL(MSIL)中的Stringbuilder
- 6. 在CIL中做什么“auto”,“ansi”和“cil managed”?
- 7. 函数中的指针如何在此代码中工作?
- 8. 参数如何在CIL函数调用中传递?
- 9. CIL堆栈交换指令
- 10. CIL指令“isinst <valuetype>”
- 11. CIL的逻辑指令
- 12. 混合代码 - 函数成员指针
- 13. 在函数指针代码中显示错误
- 14. 在JavaScript函数中使用HTML代码
- 15. 有没有办法将C++代码编译为Microsoft .Net CIL(字节码)?
- 16. 是否有任何从Visual Studio项目中编译CIL代码的示例
- 17. CIL ANTLR语法?
- 18. .NET中的CIL,CLS和CTS
- 19. 指针矩阵得到的代码
- 20. 在CIL中定义自定义属性
- 21. 错误在CIL中。未找到方法:'?'
- 22. 在vb.net代码中使用Request.UrlReferrer代码
- 23. 如何在函数中获得PL PGSQL错误代码?
- 24. 使用指针转换代码,以汇编在Pascal中 - Delphi
- 25. 使用指针重写C代码
- 26. 指向指针的指针在调用函数时获得EXC_BAD_ACCESS
- 27. 无法获取响应代码!指针?
- 28. .NET CIL Call或CallVirt?
- 29. 将代码块传递给函数/函数指针JavaScript
- 30. 指针Deferencing在x86汇编代码
你想要的原始指针地址,或者你只是想在一个变量委托对象? – siride 2010-10-12 14:50:07
用于调用.ctor的函数指针(即.ctor(object,[native int])) – Kii 2010-10-12 14:55:41
这很不清楚你在说什么。 _methodPtr值只能由JIT编译器生成。在为该方法生成机器码之前没有任何要调用的东西。 – 2010-10-12 15:39:51