DLL工作的机理是什么?我已经有一个系统,不过是基于VBscript(ASP)的,出于性能的考虑,我现在想把大部分的逻辑放到DLL中,从头开始有些难度,并且我以前都没有用过VB编程。如果我现在把所有的逻辑放在一个工程里面,估计编译后文件很大
然后如果在ASP页面中调用的时候,是把整个DLL文件全部调入内存还是仅仅调用我要使用的类的代码?还是其他什么不同的方式?
我考虑同时有很多用户并发访问时会引起内存耗尽。我想最好能够把所有的逻辑放在一起,这样的话全局变量比较容易控制。不知道各位大虾还有什么好的经验给我讲一下,请不赐吝教。好让我在项目开始的时候就有一个好的规划。最好能讲的详细一些——因为我是新手嘛:)
先谢过各位学长!鞠躬。。

解决方案 »

  1.   

    1、你的“DLL”应该是进程内组件
    2、如果是一个较大的项目,应该是应用逻辑和表示分离的,这样伸缩性较好。同样性能会比直接在ASP中用脚本写要好很多
    3、在调用时,DLL被全部装载。
    4、注意组件的生存期对缓解内存紧张有好处。即,在最后时刻创建,在不需要的时候立即释放。
    5、如果有可能,可以拆分大组件,但性能未必会提高。这与你的具体应用密切相关。
      

  2.   

    看《高级VISUAL BASIC编程》,里边有讲怎样实现轻量COM对象的。一个标准类的实例要占96个字节,一个轻量对象只占4-12字节。
      

  3.   

    谢谢h263plus:
        经过几天的努力,我已经对VB编写DLL有了初步的认识。不过还是有不少问题:
        DLL文件调入内存以后是否一直缓存?如果不是的话,能不能通过设置让他一直驻留内存?
        如何用VB实现“多态”
        我觉得一种方式是使用optional参数,不知道你有什么高见。    painache:
        我不是很明白你说的96个字节和4-12字节是什么意思。你指的是这个对象的指针的长度?谢谢二位
      

  4.   

    1、DLL的确被缓存,不过由系统控制,其内部机制我没深入研究。
    2、关于“多态”,的确是VB的弱点。我想实现是可以的,但其方式会笨拙不堪(当然是相对C++).你说用可选参数,可选参数传递的是什么呢?对象的类型吗?最好阐明你的具体想法和应用环境,“多态”不一定是唯一或最好的选择。另外,painache讲的应该是对象的实例对内存的占用。
      

  5.   

    用Implements 关键字实现多态
      

  6.   

    当然是内存占用了!WINDOWS里所有的指针都是4个字节的LONG类型的。另外,VB对多态的支持还是可以的。VB的弱点在继承和重载,VB的“继承”其实就是用VB的多态来提供的。只是很不爽的接口继承。
      

  7.   

    你先好好看看MSDN里的“用对象编程“。多态MSDN里有两个动物互相咬的例子继承只是接口继承而非实现继承重载VB根本不支持,不过可以靠高级技巧来完成,和COM有关系了,我现在也没搞懂呢。呵呵