加载动态库之后GetProcAddress
,通常会得到类型的函数指针void*
。为了调用该函数,在编译时将其转换为所需的正确指针类型。
但是,如果在编译时不知道类型,而是在运行时知道类型,则该类型存在很多可能性。在这种情况下,似乎需要手动“调用”函数,也就是根据ABI更新堆栈并注册。
问题是:在通用平台和ABI中是否有任何开源代码可以解决这一问题?如果没有,我该如何自己实施?
Microsoft abi文档在cdecl和其他约定上有一些规定,看来32位和64位是不同的。Linux上的ABI是相同的还是其他?
在另一个答案中,我说https://dyncall.org/似乎是必需的。
尽管有评论说它是正确的,但该答案已被删除。如果其他人需要,请在此处重新发布信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句