1.大量使用DLL会不会造成程序运行效率大大降低(比如降低30%),而且容易出错?
2.什么样的情况用DLL比较好?
3.而且DLL一般做什么工作比较好(比如媒体播放,图像处理,网络传输,数据加载等)?
4.一个DLL的加载是不是直接将其加载到内存中,然后调用里面的函数?
9 个解决方案
#1
1 不会
2 基础库,共享代码什么的.
3 什么都好
4 还有一些细节,比如重定向什么的.
2 基础库,共享代码什么的.
3 什么都好
4 还有一些细节,比如重定向什么的.
#2
.
#3
帮顶,用的不多。
#4
学习,观摩
#5
1.大量使用DLL会不会造成程序运行效率大大降低(比如降低30%),而且容易出错?
一般大量都还好,DLL加载在process中,处理效率比较高
2.什么样的情况用DLL比较好?
想封装一些公用的库,或者对某些代码进行封装,提供给别人使用
3.而且DLL一般做什么工作比较好(比如媒体播放,图像处理,网络传输,数据加载等)?
这些工作一般都可以,取决于你怎么实现
4.一个DLL的加载是不是直接将其加载到内存中,然后调用里面的函数?
加载到当前进程空间,然后调用函数
一般大量都还好,DLL加载在process中,处理效率比较高
2.什么样的情况用DLL比较好?
想封装一些公用的库,或者对某些代码进行封装,提供给别人使用
3.而且DLL一般做什么工作比较好(比如媒体播放,图像处理,网络传输,数据加载等)?
这些工作一般都可以,取决于你怎么实现
4.一个DLL的加载是不是直接将其加载到内存中,然后调用里面的函数?
加载到当前进程空间,然后调用函数
#6
1.恰恰相反
2.DLL提供的是再包装
3.你可以划为一类的这些都很合适(你所说的自己都已经找出一个名字来命名此类了)
4.只加载一次,之后所有程序对这dll的调用都是执行同一份。
2.DLL提供的是再包装
3.你可以划为一类的这些都很合适(你所说的自己都已经找出一个名字来命名此类了)
4.只加载一次,之后所有程序对这dll的调用都是执行同一份。
#7
1 不会
2 基础库,共享代码什么的.
3 什么都好
4 还有一些细节,比如重定向什么的.
2 基础库,共享代码什么的.
3 什么都好
4 还有一些细节,比如重定向什么的.
#8
可以参考5楼的回答
dll不仅可以减少静态编译的结果大小,减少重复代码,而且有利于代码维护,其效率也比较高!
dll不仅可以减少静态编译的结果大小,减少重复代码,而且有利于代码维护,其效率也比较高!
#9
//首先要辩证的来看待这个问题:
都知道DLL方便了代码的重用,但是我想知道的是,动态调用肯定不如静态编译好的代码执行快,
//反过来说静态编译会增大目标文件的尺寸,并且无法实现模块化以及重用
而且也应该不稳定。
//这个有什么根据?如果使用dll不稳定,我认为微软就不会在操作系统里大量的使用DLL了
1.大量使用DLL会不会造成程序运行效率大大降低(比如降低30%),而且容易出错?
//只要使用得当,答案是“不会”;相反,使用不当,就是使用lib库,效率也可能会很低
2.什么样的情况用DLL比较好?
3.而且DLL一般做什么工作比较好(比如媒体播放,图像处理,网络传输,数据加载等)?
//Anything. 只要是可以被模块化的东西。举个例子来说你可以做一个实现字符搜索功能的DLL,它可以从制定文本里快速找到目标字符串,将其作为DLL后,如果你的工程中需要这样的功能,你就可以使用这个DLL;当某一天你发现其实DLL里的搜索算法效率可以提高10倍时,同时导出函数原型又不需要变化,你可以改进这个算法,然后生成新的DLL并替换到以前的工程中,这时以前那些使用这些DLL的工程无需做任何改动就可以使用 具有新算法的DLL
4.一个DLL的加载是不是直接将其加载到内存中,然后调用里面的函数?
//此问题同意6楼
#1
1 不会
2 基础库,共享代码什么的.
3 什么都好
4 还有一些细节,比如重定向什么的.
2 基础库,共享代码什么的.
3 什么都好
4 还有一些细节,比如重定向什么的.
#2
.
#3
帮顶,用的不多。
#4
学习,观摩
#5
1.大量使用DLL会不会造成程序运行效率大大降低(比如降低30%),而且容易出错?
一般大量都还好,DLL加载在process中,处理效率比较高
2.什么样的情况用DLL比较好?
想封装一些公用的库,或者对某些代码进行封装,提供给别人使用
3.而且DLL一般做什么工作比较好(比如媒体播放,图像处理,网络传输,数据加载等)?
这些工作一般都可以,取决于你怎么实现
4.一个DLL的加载是不是直接将其加载到内存中,然后调用里面的函数?
加载到当前进程空间,然后调用函数
一般大量都还好,DLL加载在process中,处理效率比较高
2.什么样的情况用DLL比较好?
想封装一些公用的库,或者对某些代码进行封装,提供给别人使用
3.而且DLL一般做什么工作比较好(比如媒体播放,图像处理,网络传输,数据加载等)?
这些工作一般都可以,取决于你怎么实现
4.一个DLL的加载是不是直接将其加载到内存中,然后调用里面的函数?
加载到当前进程空间,然后调用函数
#6
1.恰恰相反
2.DLL提供的是再包装
3.你可以划为一类的这些都很合适(你所说的自己都已经找出一个名字来命名此类了)
4.只加载一次,之后所有程序对这dll的调用都是执行同一份。
2.DLL提供的是再包装
3.你可以划为一类的这些都很合适(你所说的自己都已经找出一个名字来命名此类了)
4.只加载一次,之后所有程序对这dll的调用都是执行同一份。
#7
1 不会
2 基础库,共享代码什么的.
3 什么都好
4 还有一些细节,比如重定向什么的.
2 基础库,共享代码什么的.
3 什么都好
4 还有一些细节,比如重定向什么的.
#8
可以参考5楼的回答
dll不仅可以减少静态编译的结果大小,减少重复代码,而且有利于代码维护,其效率也比较高!
dll不仅可以减少静态编译的结果大小,减少重复代码,而且有利于代码维护,其效率也比较高!
#9
//首先要辩证的来看待这个问题:
都知道DLL方便了代码的重用,但是我想知道的是,动态调用肯定不如静态编译好的代码执行快,
//反过来说静态编译会增大目标文件的尺寸,并且无法实现模块化以及重用
而且也应该不稳定。
//这个有什么根据?如果使用dll不稳定,我认为微软就不会在操作系统里大量的使用DLL了
1.大量使用DLL会不会造成程序运行效率大大降低(比如降低30%),而且容易出错?
//只要使用得当,答案是“不会”;相反,使用不当,就是使用lib库,效率也可能会很低
2.什么样的情况用DLL比较好?
3.而且DLL一般做什么工作比较好(比如媒体播放,图像处理,网络传输,数据加载等)?
//Anything. 只要是可以被模块化的东西。举个例子来说你可以做一个实现字符搜索功能的DLL,它可以从制定文本里快速找到目标字符串,将其作为DLL后,如果你的工程中需要这样的功能,你就可以使用这个DLL;当某一天你发现其实DLL里的搜索算法效率可以提高10倍时,同时导出函数原型又不需要变化,你可以改进这个算法,然后生成新的DLL并替换到以前的工程中,这时以前那些使用这些DLL的工程无需做任何改动就可以使用 具有新算法的DLL
4.一个DLL的加载是不是直接将其加载到内存中,然后调用里面的函数?
//此问题同意6楼