动态链接库加载函数的两种方法有什么区别?
第一种:#pragmacomment(lib,"us.lib")extern"C"__declspec(dllexport)intAdd(intx,inty);第二种:t...
第一种:#pragma comment(lib,"us.lib")extern "C" __declspec(dllexport) int Add(int x,int y);第二种:typedef int (*pAdd)(int x,int y);HMOUDLE hmod=LoadLibrary("us.dll");pAdd Add=(pAdd)GetProcAddress(hmod,"Add");
展开
3个回答
2013-04-22
展开全部
第一种是静态链接方式,在这种方式下,动态链接库中的所有数据代码都将拷贝到调用程序的代码空间中去,此时它和调用程序本身的函数没有什么区别;第二种是动态链接方式,在这种方式下,动态链接库中的数据代码是在需要的时候才拷贝到内存中去的; 两种方式都可以将外部(动态链接库中的)代码资源提供能调用者使用,但前者是全局的,虽随时可以使用,但会增加内存;而后者是局部的,虽节省了内存,但会增加调用时间。 因此,在实际应用中应根据需要选择哪种方式,一般多次调用则采用前面的方式,而单次调用则采用后面的方式。
推荐于2018-04-13 · 知道合伙人教育行家
关注
展开全部
动态链接库加载函数的两种方法的区别:
第一种是静态链接方式,在这种方式下,动态链接库中的所有数据代码都将拷贝到调用程序的代码空间中去,此时它和调用程序本身的函数没有什么区别;
第二种是动态链接方式,在这种方式下,动态链接库中的数据代码是在需要的时候才拷贝到内存中去的;
两种方式都可以将外部(动态链接库中的)代码资源提供给调用者使用,但前者是全局的,虽随时可以使用,但会增加内存;而后者是局部的,虽节省了内存,但会增加调用时间。
第一种是静态链接方式,在这种方式下,动态链接库中的所有数据代码都将拷贝到调用程序的代码空间中去,此时它和调用程序本身的函数没有什么区别;
第二种是动态链接方式,在这种方式下,动态链接库中的数据代码是在需要的时候才拷贝到内存中去的;
两种方式都可以将外部(动态链接库中的)代码资源提供给调用者使用,但前者是全局的,虽随时可以使用,但会增加内存;而后者是局部的,虽节省了内存,但会增加调用时间。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-22
展开全部
第一种由系统决定,在需要时候自动加载,但是可控制性差,胜在简单,灵活第二种由用户决定,自己加载,自己卸载,可控性强,胜在高效,可控制 两者对程序执行的影响是一样的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询