Delphi 大量调用后DDEML连接失败

Delphi 大量调用后DDEML连接失败,delphi,openoffice.org,dde,Delphi,Openoffice.org,Dde,我们的Delphi7应用程序使用DDEML与OpenOffice Calc DDE服务sOffice进行通信。它使用该服务读取电子表格 我们遇到了一个奇怪的问题。在大量调用“DdeClientTransaction”后,函数返回一个值零,表示它失败了。此失败伴随着错误“DMLERR_NOTPROCESSED”,根据,这意味着“接收任务对消息不感兴趣” 如果DDE命令无效,我们将看到这一点。这里绝对不是这样。它发生在16375次调用“DdeClientTransaction”之后。我们每次都可以在

我们的Delphi7应用程序使用DDEML与OpenOffice Calc DDE服务sOffice进行通信。它使用该服务读取电子表格

我们遇到了一个奇怪的问题。在大量调用“DdeClientTransaction”后,函数返回一个值零,表示它失败了。此失败伴随着错误“DMLERR_NOTPROCESSED”,根据,这意味着“接收任务对消息不感兴趣”

如果DDE命令无效,我们将看到这一点。这里绝对不是这样。它发生在16375次调用“DdeClientTransaction”之后。我们每次都可以在不同的电子表格上复制

为了进一步混淆问题,如果在此故障后调用DDEConnect,它将返回负值。据我们所知,这是没有记录的行为。函数应返回一个正句柄或零以指示失败


DDE连接出现了什么问题?我们如何修复它?

使用自动化调用而不是DDE是否可行?否。在这种情况下,我们将添加对OpenOffice Calc的支持,作为Excel读取电子表格的替代方案。我们已经在Excel通信中使用DDE,所以当OpenOffice应该支持DDE时,我们不会为其添加不同类型的实现。然后,最好尝试并确定是OO的DDE支持还是Delphi的DDE支持导致了问题。Delphi的DDE支持从来没有100%健壮的名声,现在修复它的机会可能为零。因为使用Excel DDE服务时完全相同的行为功能正常,这一定与OpenOffice的支持有关。就个人而言,我不太确定如果它与Excel一起工作,这一定是一个OO问题,但是ymmv。