应用程序通过加入wsdl import,地址为:http://127.0.0.1/HfltWebService.dll/wsdl/IIDBService。之后,每次应用程序关闭都会报内存错误,错误信息如下:
Exception EAccessViolation in moudle Reg.exe at 009BF000.Access violation at address 009c000,read of address 009c000。没加入之前,应用程序关闭时不报错,请各位高手指点!!

解决方案 »

  1.   

    这个东西没代码哦。是delphi自动生成的。一引入就报错。
      

  2.   

    我跟踪程序后,发现是在将THTTPRIO转换成相应的接口的时候,出现错误了。
    程序代码如下:procedure  GetInterFace()
    var
    objHttpRIO: THTTPRIO;
    mInter  :IIDBService;
    begin
         minter:=objHttpRIO as IIDBService;
    end;
    只要将minter赋值的这句去掉,程序退出时就不出现异常。但是这句我又不能去掉。不然没办法调用方法。请各位高手分析下。
      

  3.   

    正确步骤是先通过wsdl import生成接口单元,然后引入到你的单元中,然后,需要设置objHttpRIO变量的wsdllocation属性,值为http://127.0.0.1/HfltWebService.dll/wsdl/IIDBService。做这一步之前最好在窗体上先放置一个THTTPRIO,将wsdllocation属性值设为http://127.0.0.1/HfltWebService.dll/wsdl/IIDBService,正常情况下,如果服务可用的话,设置好后,THTTPRIO控件的Service属性会有可选值供你选择,Port属性也会有。记录下这两个属性。然后窗体上的THTTPRIO控件可以删除掉了。你可以将这两个属性付值给你定义的变量THTTPRIO的相关属性。这样应该就OK了。
       以上纯属个人建议,可以参考下。偶也不是很熟。
      

  4.   

    2楼,没这回事!
    楼主的错误确定是使用WSDL的问题吗?
    可不可能是调用WEBSERVICE上面出现的问题呢?或其他方面的呢?
      

  5.   

    minter:=objHttpRIO as IIDBService; 楼主写反了吧?