Página 1 de 1

jpa.rc:4: digit exceeds base

Enviado: 16 Jan 2026 08:41
por JoséQuintas
Depois de muitos anos, finalmente me preocupei em resolver isso.
O problema
Na linha:
#define JOSEQUINTAS_VERSAO_RC 2601,16,08,24

o número 08 causa erro porque o compilador interpreta números com zero à esquerda como octais (base 8). Em octal só existem dígitos de 0 a 7, então 08 não é válido.
A solução
Use números decimais sem zero à esquerda, ou hexadecimal com prefixo 0x. O mais comum em versões é decimal simples:
#define JOSEQUINTAS_VERSAO_RC 2601,16,8,24
FILEVERSION JOSEQUINTAS_VERSAO_RC
É só o zero à esquerda que é inválido.

O uso disso é no RC

Código: Selecionar todos

#include "build.ch"

1 VERSIONINFO
  FILEVERSION JOSEQUINTAS_VERSAO_RC
  BEGIN
     BLOCK "StringFileInfo"
     BEGIN
        BLOCK "040904E4"
        BEGIN
            VALUE "CompanyName"      , "JPA TECNOLOGIA LTDA"
            VALUE "FileDescription"  , "JPA Integrado"
            VALUE "FileVersion"      , JOSEQUINTAS_VERSAO
            VALUE "LegalCopyright"   , "José M C Quintas"
            VALUE "LegalTrademarks"  , "José M C Quintas"
            VALUE "OriginalFilename" , "JPA.EXE"
            VALUE "ProductName"      , "JPA"
            VALUE "ProductVersion"   , JOSEQUINTAS_VERSAO
        END
    END
    BLOCK "VarFileInfo"
    BEGIN
        VALUE "Translation", 0x0416, 1252
    END
END
Meu build.prg cria este ch toda vez que compilo.

Código: Selecionar todos

#define JOSEQUINTAS_VERSAO    "2026.01.16.0834"
#define JOSEQUINTAS_VERSAO_RC  2601,16,8,34
Isso se torna minha identificação de versão.
Não pode colocar 01,02,03, o correto é 1,2,3
Apesar da mensagem de erro, nunca causou problema, então não me preocupei antes.
E agora tem IA pra ajudar kkk