,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代码?
- 3. 更改CIL代码为本地代码在C#
- 4. CIL数据类型和它们在C#中的等效代码
- 5. 如何将CIL代码插入到C#
- 6. 在CIL中分支
- 7. 在CIL(MSIL)中的Stringbuilder
- 8. 在CIL(OCaml)中打印
- 9. 在CIL中做什么“auto”,“ansi”和“cil managed”?
- 10. Frama-C:在Cil谓词中替换Cil术语
- 11. 函数中的指针如何在此代码中工作?
- 12. 寻找cil的代码列表,如16,17,18,19,22所做的那样
- 13. 指针代码
- 14. 参数如何在CIL函数调用中传递?
- 15. CIL的逻辑指令
- 16. CIL堆栈交换指令
- 17. CIL指令“isinst <valuetype>”
- 18. 函数指针是从代码
- 19. 混合代码 - 函数成员指针
- 20. 在C++代码中追踪指针gdb
- 21. 在函数指针代码中显示错误
- 22. 在JavaScript函数中使用HTML代码
- 23. 有没有办法将C++代码编译为Microsoft .Net CIL(字节码)?
- 24. CIL中没有运行代码的正确技术术语是什么?
- 25. 是否有任何从Visual Studio项目中编译CIL代码的示例
- 26. CIL ANTLR语法?
- 27. 写入CIL
- 28. CIL中的nop是什么?
- 29. 错误在CIL中。未找到方法:'?'
- 30. ldc.i4.m1和ldc.i4.M1在CIL中
你想要的原始指针地址,或者你只是想在一个变量委托对象? – 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