生成的導入庫(用於鏈接將加載dll的程序的庫)AFAICS以彙編jmp
statings的形式實現對導入函數的各種調用。如何用簡單的jmp程序集實現import lib?
這確實看起來像是一個非常優化的解決方案。它不需要再次推理,也不需要從呼叫中返回。
我想創建自己的導入庫,在其中添加一些其他功能。爲此,我必須調用LoadLibrary()
和GetProcAddress()
函數來獲取dll中函數的地址。但是,我必須提供自己的函數,通過函數地址調用導入的函數。但是這意味着兩次調用,並再次推入堆棧中的參數。我希望這個雙重要求得到優化。
有沒有人知道一種方法來在C實現一個導入庫,會做同樣的jmp
詭計? (或者編譯器是否優化了路徑調用?)
我不是很清楚你在這裏問什麼。首先你說導入庫是這樣做的,然後你問如何讓他們這樣做。你能澄清嗎? – torak 2010-06-23 15:46:37