一ActiveX Dll,在访问asp页面的时候调用。
web server在windows2000 server上运行
1)我在该dll里定义一个class module,命名test1.cls,然后添加一个模块test.bas,
在test.bas里定义Global gblTest1 as test1
在test2.cls的Initialize事件里,初始化gblTest1
if gblTest1 is nothing then
set gblTest1=new test1
end if
然后在页面里多次访问(很频繁)该dll,
现象:每次做CreateObject("mydll.test2")的时候都会做set gblTest1=new Test1的操作。意思就是上次new过后下次刷新后该全局变量没有保存(或者内存被释放了),
2) 如果我把该dll放到一台window2000 professionall的机器里运行。那么只有第一次的时候会new一个变量,以后刷新都不会再去new这个变量
3) 如果定义一个全局的String 变量,下次刷新时该变量的值都会存在的。所以本人一直很困惑。在这里请教高手,有什么解决办法,能让该全局类变量一直保存在内存里。
web server在windows2000 server上运行
1)我在该dll里定义一个class module,命名test1.cls,然后添加一个模块test.bas,
在test.bas里定义Global gblTest1 as test1
在test2.cls的Initialize事件里,初始化gblTest1
if gblTest1 is nothing then
set gblTest1=new test1
end if
然后在页面里多次访问(很频繁)该dll,
现象:每次做CreateObject("mydll.test2")的时候都会做set gblTest1=new Test1的操作。意思就是上次new过后下次刷新后该全局变量没有保存(或者内存被释放了),
2) 如果我把该dll放到一台window2000 professionall的机器里运行。那么只有第一次的时候会new一个变量,以后刷新都不会再去new这个变量
3) 如果定义一个全局的String 变量,下次刷新时该变量的值都会存在的。所以本人一直很困惑。在这里请教高手,有什么解决办法,能让该全局类变量一直保存在内存里。
public property get CompanyInfo object
if mcompanyinfo is nothing then
set mcompanyinfo=createobejct(mcompanylib,comservername)
'可传入一些参数
endif
set companyinfo=mcompanyinfo
end property 以上这个属性是被客户端所调用,以下是客户端代码
dim gAppObject as object'是建立主DLL对象
set gAppObject=createobject("class_App.clsApp",comservername)
call gappobject.companyinfo.方法(执行这条语句时,如果companyinfo对象为nothing,就会去新建一个,如果有了就不会去建,我跟踪过绝对正确)如有不清楚,我的MSN:[email protected]
非常感谢您的帮忙对象肯定已经全局化,我在我自己的机器上运行只会new一次(windows2000 professional)不知道您试的时候用的是什么OS,windows2000 server or later?