Delphi $IFDEF WIN32 落入 $ELSE
Delphi $IFDEF WIN32 falls through to $ELSE
我正在处理的一个项目有一个单元 xprocs.pas,它有一个正在运行的 {$IFDEF}
/{$ELSE}
块。它构建良好并且 运行 昨天没有问题......但是今天早上,它抛出异常并出现 运行ge 检查错误。引发错误的代码块由 {$IFDEF WIN32}
继续,但未按预期运行。
如果我评论 {$IFDEF}
块并尝试仅 运行 直接跟随它的行,它不尊重评论,并且 运行 无论如何。 IDE 还允许我在注释掉的代码上放置一个断点。
我删除了 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;
问题最终是一个损坏的项目文件,"ProjectName.dof"。我删除了它并从旧的手动复制了编译器设置和搜索路径。
我正在处理的一个项目有一个单元 xprocs.pas,它有一个正在运行的 {$IFDEF}
/{$ELSE}
块。它构建良好并且 运行 昨天没有问题......但是今天早上,它抛出异常并出现 运行ge 检查错误。引发错误的代码块由 {$IFDEF WIN32}
继续,但未按预期运行。
如果我评论 {$IFDEF}
块并尝试仅 运行 直接跟随它的行,它不尊重评论,并且 运行 无论如何。 IDE 还允许我在注释掉的代码上放置一个断点。
我删除了 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;
问题最终是一个损坏的项目文件,"ProjectName.dof"。我删除了它并从旧的手动复制了编译器设置和搜索路径。