dll知识点查遗补缺

1.
导入函数
(1)如果程序静态连接时,声明函数采用了 __declspec(dllimport)
调用Foo时,被翻译成call [_imp_Foo]
其中_imp_Foo是idata节里面的数据,dll的loader会修改这个地址里的数值。
_imp_Foo是FirstTrunk值。

(2)如果程序静态连接时, 没有采用了 __declspec(dllimport)
调用Foo时,被翻译成call _Foo
而编译器会自动生成_Foo函数,这只是个躯壳。
_Foo:
jump [_imp_Foo]

(3)采用GetProcAddress方式
这种方式不会有_imp_Foo类似的地址,GetProcAddress返回的就是函数地址,直接call就可以了


pixy.gif?x-id=1b6c864f-cee8-41d5-b049-e4b1ddf3bf70

转载于:https://www.cnblogs.com/fanzi2009/archive/2009/03/20/1418060.html

猜你喜欢

转载自blog.csdn.net/weixin_33736649/article/details/94192494
今日推荐