我正在将旧的Delphi 6应用程序转换为Delphi 10 Tokyo。 这段代码在Delphi 6中没有任何问题,但在Delphi XE2或Delphi 10 Tokyo中出错:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, COMObj;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Mosaikserver: variant;
SystemDB: widestring;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Mosaikserver := CreateOleObject('mosaik.server');
SystemDB := 'C:\xxx\system.mdw';
Mosaikserver.SystemDB := SystemDB;
end;
end.
在Delphi XE2或Delphi 10 Tokyo中,我在行上收到一个浮点除零:Mosaikserver.SystemDB := SystemDB;
Mosaikserver.SystemDB := 'c:\xxx\system.mdw';
也会出现同样的错误。
我想这与Unicode字符串有关,但我不知道到底是什么。
有什么建议吗?