我有一个用 Delphi 编写的 POS 应用程序,到目前为止它一直运行良好。
我必须添加一个 web 服务客户端来让政府验证一些文件,即使我以前从未使用过 WebServices/Encryption,我还是设法做到了(真的感谢互联网)。
当我运行该程序并创建其中一个文档时,它已完全验证(访问 Web 服务,发送带有一些数据的 SOAP 信封,并且接收到来自服务器的响应而没有任何问题)。
问题是,如果我创建另一个文档,当我尝试验证它时,我会收到“ Access Violation at 0x07e7bcb5: read of address 0x00000012 ”。
我的验证例程是 DLL 中的一个函数。在它进入 DLL 之前,我将所有代码都放在主项目中,但它使我的程序崩溃:如果我要验证一个文档,就会得到响应,但是当我终止程序或者如果我试图验证另一个。我还尝试动态加载 DLL,因此验证过程将在每次运行时“从头开始”,但它没有用。
我一直在尝试调试它,但我就是无法得到它。一步一步运行,在某行失败,我注释掉,下一次运行在完全不同的地方失败。我也尝试过 EurekaLog,但我不知道如何处理它给我的信息(我从未使用过它)。
我应该采取什么方向?
非常感谢你!努诺·皮卡多
编辑:我可能应该提到我用来访问 Web 服务的内容: - THTTPReqResp 和 WinINet 用于通信 - IXMLDocument 用于创建 SOAP 信封 - LibEay32 用于加密 Web 服务所需的一些数据 - TZDB 从网络获取通用时间基于服务器 - Capicom 2.0 加载通信所需的证书