在c ++上创建__cdecl到__thiscall包装函数

时间:2018-01-29 20:24:07

标签: c++ closures libraries calling-convention dynamic-loading

我需要动态创建一个可以使用__cdecl调用约定由外部库调用的函数,然后将调用重定向到类上的方法,有效地充当{{{ 1}}调用约定。

主要思想是这个程序(__thiscall)应该从外部应用程序(program1)接收一个函数指针,将它打包成一个可以查询我们的对象(program2)要知道是否应该调用program1,然后将其传递给库。

我对这个类的标题应该是什么样子有一个模糊的概念

program2

那里有没有提供类似功能的库?如果没有,我如何在C ++中实现它?

1 个答案:

答案 0 :(得分:0)

我发现libffcall是解决这些问题的最合适的解决方案。在汇编/机器代码上构造闭包也是一个有效的选择,但是使用libffcall实现同样的事情是多么容易和轻松,我认为你不想弄乱前者,除非你对你的二进制文件有一些(非常严格的)大小约束。

This is the final solution