我在一些客户端声明MidasLib以避免由Midas.dll引起的dll地狱.
下面的代码运行大约2350ms.如果我在使用中删除了MidaLib声明,它将在45毫秒内开始运行!!
data.xml文件使用TClientDataSet.SaveToFile方法保存,有5000条记录,大小约为600Kb.
有谁知道如何解释这种奇怪的行为?
我可以在Delphi XE2 upd 3和Delphi XE3 upd 2中确认问题.
谢谢.
program Loader;
{$APPTYPE CONSOLE}
{$R *.res}
uses
MidasLib,
System.SysUtils,
Winapi.Windows,
Data.DB,
Datasnap.DBClient;
var
cds : TClientDataSet;
start, stop : Cardinal;
begin
cds := TClientDataSet.Create(nil);
try
start := GetTickCount;
cds.LoadFromFile('c:\temp\data.xml');
stop := GetTickCount;
Writeln(Format('Time elapsed: %dms', [stop-start]));
finally
cds.Free;
end;
end.
Run Code Online (Sandbox Code Playgroud) 我在没有Delphi的其他计算机上试用我的应用程序时遇到问题.
如果我将midas.dll放在System32上的同一个文件夹/目录中我总是收到错误消息错误加载midas.dll,但是如果我把midas.dll放在桌面上,那么错误消息不会出现,应用程序正常运行.
如何处理midas.dll所以我可以将它放在同一个文件夹中?

