Delphi $ IFDEF WIN32降至$ ELSE

时间:2017-03-14 16:20:47

标签: delphi conditional-compilation

我正在处理的项目有一个单元xprocs.pas,它有一个{$IFDEF} / {$ELSE}块,可以起作用。它建设很好并且昨天没有问题运行......但是今天早上,它发出一个范围检查错误的例外。抛出错误的代码块由{$IFDEF WIN32}继续,但未按预期执行。

如果我评论{$IFDEF}块并尝试仅在其后面直接运行该行,则它不会尊重该注释,并且无论如何都会运行它。此外,IDE允许我在已注释掉的代码上放置一个断点。

IDE Image

我删除了DCU文件,认为它使用的是旧版本,但没有效果。

有什么建议吗?

const
  C1 = 52845;
  C2 = 22719;

function strEncrypt(const S: String; Key: Word): String;
var
  I: Integer;
begin
 {$IFDEF Win32}
  SetLength(Result,Length(S));
 {$ELSE}
   Result[0]:=Chr(Length(S));
 {$ENDIF}
  for I := 1 to Length(S) do begin
    Result[I] := Char(Ord(S[I]) xor (Key shr 8));
    Key := (Ord(Result[I]) + Key) * C1 + C2;
  end;
end;

1 个答案:

答案 0 :(得分:0)

该问题最终成为一个损坏的项目文件," ProjectName.dof"。我将其删除并手动复制旧编译器设置和搜索路径。