ActiveX控件编写好后,单独在页面运行时一切正常。
但是在应用时,在包含控件的页面有多个时,比如依次打开A,B,C三个页面;那么,如果先关闭了A,或者B,然后在C页面上的控件就出问题,刷新或者别的操作时,弹出如下提示的:
DAX Error:Access violation at address 074D3AC2 in module 'XXXX.ocx'.Read of address 00000000.
什么原因呢?如何解决?
补充:如果按照C,B,A的顺序关闭页面的话,就不会有问题。顺便问一句:Web上的ActiveX控件能够传出自定义的对象么?(比如某个Variant指向的对象,或者一个类的实例?)

解决方案 »

  1.   

    是Apartment模式。一般来说IE里的ActiveX控件都是这种线程模式。
      

  2.   

    对了,我觉得这个问题应该跟ActiveX控件第一次用的页面直接关闭后,缓存中不存在有点关系。
        因为如果后面的B,C页面如果是从A页面生成的话,关闭A不会影响B,C;而如果ABC都是从一个窗口中生成出来,则出现上面的问题。
      

  3.   

    我碰到过。好像是ActiveForm本身就有这个问题。我曾经建立过一个空的ActiveForm,结果照样报错。
    你还是用ActiveX控件吧。不出问题。