gpt4 book ai didi

delphi - Delphi-编译器指令多行效果选择了IDE错误行

转载 作者:行者123 更新时间:2023-12-03 18:26:14 24 4
gpt4 key购买 nike

我想知道为什么在多行上键入编译器指令会影响所选的IDE错误行。

例如:

{$SETPEFlAGS IMAGE_FILE_DEBUG_STRIPPED or
IMAGE_FILE_LINE_NUMS_STRIPPED or
IMAGE_FILE_LOCAL_SYMS_STRIPPED or
IMAGE_FILE_RELOCS_STRIPPED}

.....

procedure Foo();
begin
WriteLn('1');
WWriteLn('2');
WriteLn('3');
WriteLn('4');
WriteLn('5');
end;


IDE错误


[dcc32错误] Crypter.dpr(29):E2003未声明的标识符:'WWriteLn'


在源代码中,所选行是 WriteLn('5');而不是 WWriteLn('2');

但是,如果以这种方式(一行)键入了编译器指令:

{$SETPEFlAGS IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or IMAGE_FILE_LOCAL_SYMS_STRIPPED or IMAGE_FILE_RELOCS_STRIPPED}


将解决问题!

最佳答案

如果您说的话,那么这就是IDE中的缺陷。将问题作为错误报告给Quality Portal。

解决该问题很容易。只是不要使用多行指令。在这种情况下,您可以将标志提取到单独的常量中,并在指令中引用它。

const
PEFlags = IMAGE_FILE_DEBUG_STRIPPED or
IMAGE_FILE_LINE_NUMS_STRIPPED or
IMAGE_FILE_LOCAL_SYMS_STRIPPED or
IMAGE_FILE_RELOCS_STRIPPED;

{$SETPEFlAGS PEFlags}




我在第一段中犹豫的原因是,如果换行不正确,您描述的内容也会出现。如果换行符不是CR + LF,则IDE会对行号感到困惑。因此,值得检查您的换行符为CR + LF。您只需重新输入代码即可,换行符将是正确的。通常,从其他来源粘贴时,您会混合使用换行符。

关于delphi - Delphi-编译器指令多行效果选择了IDE错误行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34567903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com