写了一个com组件。在使用时间不报错,也没有问题,就是在退出时提示如下错误:
Exception EAccessviolation in module TSF.exe at 000203213.
Access violation at address 0042032B in module TSF.exe .Read of address 00000000.谢谢。

解决方案 »

  1.   

    但是,Com组件在一个子程序中使用过,如果不使用就不会有这个问题。
    这中情况怎样才能Free完呢?
      

  2.   

    我遇见过类似的问题。
    试试以下解决方法:
    所有动态创建的组件,不要把Owner设置为Application或者Self等,设置为NIL。
    即 Class := TClass.Create(NIL);不要进行Free操作,或者Free后设置为 NIl
      

  3.   

    windindance(风舞轻扬我用的是com组件。在一个模块中使用了该Com组件。
    这个怎样Free呢?
      

  4.   

    不是你的COM组件的FREE
    是你的COM组件中有没有动态创建什么
      

  5.   

    我的com组件是用来画图的。就是将一个canvas的指针传了进去。别的什么也没有做。
      

  6.   

    问题的错误位置我找到了,是我把canvas的指针传到com中,然后用com生成的对象绘图,当我给canvas上的pen的宽度和颜色赋值时,就会出现在程序退出时报错的现象。
      

  7.   

    你的参数是Canvas还是Canvas.Handle?
    用Canvas.Handle看看