gpt4 book ai didi

delphi - 编译rc文件遇到 "expected exponent value"错误

转载 作者:行者123 更新时间:2023-12-03 15:36:44 25 4
gpt4 key购买 nike

我有一个 rc 条目:

{CC6C210B-2EAC-4F6C-89E7-0D2FEFFCE278}  8000  "MyFile.txt"

当我使用cgrc.exe或brcc32.exe编译rc文件时,遇到以下错误:

[BRCC32 Error] system.core.rc(1): expected exponent value, not 'a'

这是由于资源名称“CC6C210B-2EAC”被解释为指数值 (-2EA)。 -2E 后面的 A 字符不是有效的指数值。

如果我将 rc 条目更改为类似的内容

{CC6C210B-2E2C-4F6C-89E7-0D2FEFFCE278}  8000  "MyFile.txt"

资源编译没有任何错误。

不幸的是,我不能简单地更改资源名称,因为它已被广泛使用。有没有办法让 rc 不将资源名称解释为指数值?

最佳答案

我不太确定使用 GUID 作为资源名称是个好主意。如果您确实想这样做,您可能需要将其“编码”为“正常”标识符,例如

_CC6C210B_2EAC_4F6C_89E7_0D2FEFFCE278  8000  "MyFile.txt"

您只需编写一组简单的例程来在普通 GUID 字符串和“编码”形式之间“编码”和“解码”这样的值。

function DecodeToGUID(const renamedGUID: string): string;
begin
Result := '{' + Copy(ReplaceString(renamedGUID, '_', '-', [rfReplaceAll]), 2, MaxInt)) + '}';
end;

我将把另一个例程的实现留给你想象。 ;-)

<小时/>

更新

如果将 ID 放在引号中,则应该使用 rc.exe 进行编译。如果没有引号,资源编译器会将其视为预处理器指令并变得非常困惑:

"{CC6C210B-2EAC-4F6C-89E7-0D2FEFFCE278}"  8000  "MyFile.txt"

我用 Microsoft 的 rc.exe 对此进行了测试。 Embarcadero的brcc32.exe仍然会报错:

Error resrc.rc 1 1: Expecting resource name or resource type name

因此,如果您想使用它,或者 IDE 的内置资源编译器,则必须使用类似于上述重命名的 GUID 的内容。

关于delphi - 编译rc文件遇到 "expected exponent value"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7129529/

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