1。我很着急。
2。分不够可以再加。真正解决了就行。
3。感觉大富翁越来越次了。我做了一个ActiveX,Delphi调用时,一切正常。但是给PB调用的时候就出问题了,功能也能够使用,但是PB的窗口关闭的时候就会出现内存错误,然后连PB一起就给关闭了。后来我就找啊找,找啊找,找到花儿也谢了,终于找到了问题,但是…………呜呜哇哇…………我怎么也向不明白为啥出现这样的错误。首先,我不明白的是,为什么Delphi调用正常,而PB调用却不正常。其次,我在排除错误的时候发现了这样一个问题,那就是,看下面代码procedure TXXXXActiveXTest.InitializeControl;
begin
  Try
    FDelphiControl := (Control as TButton);
  Except
    ShowMessage('Control as TButton is Wrong');
  End;
  FDelphiControl.OnClick := ClickEvent;
end;当FDelphiControl := (Control as TButton);这一句,被主销掉的时候,PB调用就不出错了,但是这样的话,NND这个ActiveX也不能用啊。但是加上就出错。还有,我试了试如果加上这句话,当你在PB地下不去调用这个ActiveX的方法或属性的时候,就不会出错,而调用了就出错,更气人的是你可以响应这个ActiveX的事件,只响应时间的时候就没有错误。我靠,这不是强盗逻辑吗?为什么呀为什么。还有,我在找问题的时候为自己在添加了几个过程,但是TMD调用的时候只要是inherited了TActiveXControl的方法,PB立马消失,比枪顶着都快。
各位朋友们,各位同志们,各位同胞们,看在我们都是人类的份上,帮帮忙吧。呜呜哇哇。不会让我连年都过不好吧。谢谢了啊。[做范伟状]

解决方案 »

  1.   

    与我早以前用BCB写DLL叫VisualFoxPro调用一样,NND 用VC写的调用就没有问题,用BCB写的就是不行 :( 但用VC实现我想要的功能那就太......最后解决的办法就是.....用另一个程序掉用,用完后就关这个程序,等下一次用,这样主程序就不会出错了....
    不知道能不能帮上你 up先还有要说的就是在ActiveX中最好不要用与开发语言有关的东东,因为ActiveX是与开发语言无关的,如果必须要用到,你可以不用ActiveX实现....过不去还不会绕过呀 ^^!
      

  2.   

    我帮你UP吧,我没用过PB,不会。
      

  3.   

    这个跟开发语言有什么关系。我觉得问题就应该出在ActiveX构造和析构的时候,构造的时候用了一个Control as TButton,析构的时候,就是TWinControl,是不是出在这里啊。
    还有,不是我要跨语言,使公司的主业产品是用PB开发的。
      

  4.   

    我帮你UP吧,我没用过PB,不会。
      

  5.   

    不知你用的是PB第几版本,你可以重装PB
    遇到莫明其妙的问题有时我重装一下PB就好了。
      

  6.   

    没用过PB,不过我猜是不是因为把PB中的控件指针当作Delphi指针来用的缘故啊?至于不调用属性时不会出错,可能是因为这时程序还没真正 使用 该指针的缘故吧.建议你用Windows下的标准类型作为Activex的接口参数(如Handle,UINT等)
      

  7.   


    问题应该不在这里。
    用D7编写出的控件,·NET可以正常调用,而用VC++·NET编写出的控件,PB则不能使用,而D7可以
    感觉时虚函数表的问题。可能和PB的什么东东有冲突。