我们的Delphi 7应用程序使用DDEML与OpenOffice Calc DDE服务sOffice进行通信。它使用该服务从电子表格中读取。
我们遇到了一个奇怪的问题。在对“DdeClientTransaction'”进行大量调用后,该函数返回零值,表示它已失败。此失败伴随着错误' DMLERR_NOTPROCESSED'根据http://www.opcdatahub.com/Docs/dhw-ax-windowsddeerrornumbers.html,这意味着“接收任务对消息不感兴趣”。
如果DDE命令无效,我们将会看到这一点。这绝对不是这种情况。它发生在16375调用' DdeClientTransaction'之后。我们每次都可以通过不同的电子表格复制这一点。
为了进一步混淆,如果我们在失败后调用DDEConnect,它会返回一个负值。据我们所知,这是无证件的行为。该函数应返回一个正手柄或零以指示失败。
DDE连接发生了什么,我们如何解决?