生成的导入库(用于链接将加载dll的程序的库)AFAICS以汇编jmp
statings的形式实现对导入函数的各种调用。如何用简单的jmp程序集实现import lib?
这确实看起来像是一个非常优化的解决方案。它不需要再次推理,也不需要从呼叫中返回。
我想创建自己的导入库,在其中添加一些其他功能。为此,我必须调用LoadLibrary()
和GetProcAddress()
函数来获取dll中函数的地址。但是,我必须提供自己的函数,通过函数地址调用导入的函数。但是这意味着两次调用,并再次推入堆栈中的参数。我希望这个双重要求得到优化。
有没有人知道一种方法来在C实现一个导入库,会做同样的jmp
诡计? (或者编译器是否优化了路径调用?)
我不是很清楚你在这里问什么。首先你说导入库是这样做的,然后你问如何让他们这样做。你能澄清吗? – torak 2010-06-23 15:46:37