ASP利用VB转换为Dll的时候出现,原因可能有以下:
1:对象没有实例化,就被引用了。
2:在2000下。请查看是否有引用。COM+ Services Type Library(以前的版本中好像是MTS组件)
还有一种就是没有把组件注册到com+组件管理器中,而导致setcomplete和setabort无法使用报错未设置对象变量或 With block 变量
如果是这个错误的话(未设置对象变量或 With block 变量 错误),就应该是没有用 set 对象 或者用 new,还有一种不太容易发现的错误
Dim Rs As Adodb.Recordset
然后在function或sub中,对rs进行事例话后.
如:
Set Rs = New ADODB.Recordset
.....
Set Rs = Nothing
此时你可能对这个过程或函数进行重复使用.如递归.就会发现出现上述错误.
原因是在函数中已经把事例对象给Nothing了.在Set 的时候.Rs不存在.导致出错.此时候.应该避免全局变量的时候.在过程或函数中使用Dim Rs As New ADODB.Recordset
肯定是没有初始化一个对象。
如果在Dll中引用了类型库,那么在调用Dll的应用中也要引用该类型库,否则将提示变量的With域没有定义的错误