Delphi:从DDE服务器获取数据

时间:2014-06-01 11:51:55

标签: delphi dde

我有类似的东西:

function DDE_Read(Service, Topic, Items: string): string;
var
  DDE: TDDEClientConv;
begin
  try
    DDE := TDDEClientConv.Create(nil);
    DDE.SetLink(Service, Topic);
    DDE.OpenLink;
    Result:=DDE.RequestData(Items);
  finally
    DDE.Free;
  end;
end;

我连接到DDE服务器并获取数据。有时我可以获取数据,有时我会收到空​​字符串。你能告诉我这段代码好吗?我多久可以连接到dde服务器来获取数据?

你可能有一些* dll或你自己的代码吗?

// EDIT 我开始了,我现在不总是你的意思:)我非常感谢你帮助我。所以我的代码应该像那样?

function DDE_Read(Service, Topic, Items: string): string;
var
DDE: TDDEClientConv;
temp:PAnsiCHar;
begin
DDE := TDDEClientConv.Create(nil);
DDE.SetLink(Service, Topic);
DDE.OpenLink;
try
temp:=DDE.RequestData(Items);
Result:=temp;
SysUtils.StrDispose(temp);
finally
DDE.Free;
end;
end;

1 个答案:

答案 0 :(得分:1)

IIRC,当在很短的时间间隔内打开和关闭大量连接时,有时会出现使用DDE的问题。我不确定这是否仍然是现代Windows系统的问题。另一方面,您对使用DDE的纯粹需求表明您不是在现代环境中工作。

您可以尝试将特定服务的TDDEClientConv实例或服务和主题的组合保持较长时间。这至少可以减少你的问题。