在运行时创建具有唯一函数指针的函数

波尔科夫尼科夫

当调用以回调为参数的WinAPI函数时,通常会有一个特殊的参数将一些任意数据传递给回调。如果没有这样的事情(例如SetWinEventHook),我们可以理解导致给定回调调用的API调用中的哪个唯一方法就是具有不同的回调。当我们知道在编译时调用给定API的所有情况时,我们总是可以使用静态方法创建一个类模板,并在不同的调用端使用不同的模板参数实例化它。那真是一件麻烦事,我不喜欢这样做。

如何在运行时创建回调函数,以便它们具有不同的函数指针?

我看到了一个生成运行时程序集解决方案(很抱歉,俄语),但是它不能在x86 / x64体系结构中移植。

右折

您可以使用libffi的闭包API它允许您创建每个具有不同地址的蹦床。在这里实现了一个包装类,尽管还没有完成(仅支持int参数和返回类型,您可以专门detail::type提供支持,而不仅仅是int)。LLVM是更重量级的替代方法,尽管如果仅处理C类型,libffi会做的很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在运行时快速创建函数

来自分类Dev

Javascript:在运行时创建函数

来自分类Dev

使用Devkit构建的强制连接器在运行时具有唯一的名称

来自分类Dev

可以在运行时使用Javascript创建函数吗?

来自分类Dev

在运行时JavaScript中创建匿名函数

来自分类Dev

递归函数在运行时崩溃

来自分类Dev

如何在运行时获取虚拟函数的指针的确切类型?

来自分类Dev

仅在运行时给出签名时的函数指针调用

来自分类Dev

在运行时在Elixir中选择方法(函数指针类型)

来自分类Dev

嵌套函数仍在运行时暂停外部函数

来自分类Dev

在phpunit中运行时创建函数

来自分类Dev

如何在运行时使用指定的参数名称创建函数?

来自分类Dev

我可以在运行时通过评估字符串来创建函数吗?

来自分类Dev

如何在运行时在NodeJs中动态创建和调用函数

来自分类Dev

我可以在运行时通过评估字符串来创建函数吗?

来自分类Dev

创建alist时,如何在运行时提取函数体

来自分类Dev

在运行时创建具有反射和泛型的类的数组

来自分类Dev

在运行时创建具有相同内部内容的对象

来自分类Dev

在运行时动态创建具有自动装配功能的Spring Bean

来自分类Dev

如何编写在运行时返回现有TForm实例的函数?

来自分类Dev

相似的递归函数在运行时上有很大的差异。这是为什么?

来自分类Dev

在运行时更改现有函数的变量名

来自分类Dev

使用JavaScript在运行时设置函数名称

来自分类Dev

在运行时修改循环函数的内部

来自分类Dev

为什么在运行时处理虚函数?

来自分类Dev

宏在运行时访问函数的源代码

来自分类Dev

调用仅在运行时已知的函数

来自分类Dev

如何在运行时生成函数?

来自分类Dev

as3commons在运行时生成函数调用

Related 相关文章

  1. 1

    在运行时快速创建函数

  2. 2

    Javascript:在运行时创建函数

  3. 3

    使用Devkit构建的强制连接器在运行时具有唯一的名称

  4. 4

    可以在运行时使用Javascript创建函数吗?

  5. 5

    在运行时JavaScript中创建匿名函数

  6. 6

    递归函数在运行时崩溃

  7. 7

    如何在运行时获取虚拟函数的指针的确切类型?

  8. 8

    仅在运行时给出签名时的函数指针调用

  9. 9

    在运行时在Elixir中选择方法(函数指针类型)

  10. 10

    嵌套函数仍在运行时暂停外部函数

  11. 11

    在phpunit中运行时创建函数

  12. 12

    如何在运行时使用指定的参数名称创建函数?

  13. 13

    我可以在运行时通过评估字符串来创建函数吗?

  14. 14

    如何在运行时在NodeJs中动态创建和调用函数

  15. 15

    我可以在运行时通过评估字符串来创建函数吗?

  16. 16

    创建alist时,如何在运行时提取函数体

  17. 17

    在运行时创建具有反射和泛型的类的数组

  18. 18

    在运行时创建具有相同内部内容的对象

  19. 19

    在运行时动态创建具有自动装配功能的Spring Bean

  20. 20

    如何编写在运行时返回现有TForm实例的函数?

  21. 21

    相似的递归函数在运行时上有很大的差异。这是为什么?

  22. 22

    在运行时更改现有函数的变量名

  23. 23

    使用JavaScript在运行时设置函数名称

  24. 24

    在运行时修改循环函数的内部

  25. 25

    为什么在运行时处理虚函数?

  26. 26

    宏在运行时访问函数的源代码

  27. 27

    调用仅在运行时已知的函数

  28. 28

    如何在运行时生成函数?

  29. 29

    as3commons在运行时生成函数调用

热门标签

归档