O Lazarus não está conseguindo determinar qual método de sobrecarga (overload) utilizar
Eis a saída do Lazarus:
Hint: (11030) Start of reading config file E:\Programacao\lazarus\fpc\3.2.2\bin\i386-win32\fpc.cfg Hint: (11031) End of reading config file E:\Programacao\lazarus\fpc\3.2.2\bin\i386-win32\fpc.cfg Free Pascal Compiler version 3.2.2 [2024/02/26] for i386 Copyright (c) 1993-2021 by Florian Klaempfl and others (1002) Target OS: Win32 for i386 (3104) Compiling Horse_Server.lpr (3104) Compiling E:\Programacao\lazarus\lib\horse-basic-auth\src\Horse.BasicAuthentication.pas E:\Cursos e Programacao\Programacao\Trabalho\Lazarus\Demo3.2024\Horse_Server.lpr(21,15) Error: (4057) Can't determine which overloaded function to call E:\Programacao\lazarus\lib\horse-basic-auth\src\Horse.BasicAuthentication.pas(77,10) Hint: (5039) Found declaration: HorseBasicAuthentication(const THorseBasicAuthenticationWithResponse):<procedure variable type of procedure(THorseRequest;THorseResponse;TNextProc);Register>; E:\Programacao\lazarus\lib\horse-basic-auth\src\Horse.BasicAuthentication.pas(72,10) Hint: (5039) Found declaration: HorseBasicAuthentication(const THorseBasicAuthentication):<procedure variable type of procedure(THorseRequest;THorseResponse;TNextProc);Register>; Horse_Server.lpr(26) Fatal: (10026) There were 1 errors compiling module, stopping Fatal: (1018) Compilation aborted Error: E:\Programacao\lazarus\fpc\3.2.2\bin\i386-win32\ppc386.exe returned an error exitcode
Utilizando a diretiva: {$if defined(fpc)} {$mode delphi}{$H+} {$endif}
// São as duas funções que o compilador do Lazarus não está conseguindo lidar. function HorseBasicAuthentication(const AAuthenticate: THorseBasicAuthentication): THorseCallback; begin Result := HorseBasicAuthentication(AAuthenticate, THorseBasicAuthenticationConfig.New); end;
function HorseBasicAuthentication(const AAuthenticate: THorseBasicAuthenticationWithResponse): THorseCallback; overload; begin Result := HorseBasicAuthentication(AAuthenticate, THorseBasicAuthenticationConfig.New); end;
OBS.: Não tive oportunidade de testar no Delphi 10.3 que devido a um problema em minha máquina estou sem ele, mas acredito que no Delphi esteja Ok, pois estava acompanhando um vídeo do Alexandre Mágno para tirar algumas dúvidas e lá ele estava utilizando delphi e tudo funcionava.
Amigos, desculpem-me, mas achei um comportamento estranho no Lazarus 3.2, se eu não der um Clean and Build ele não está funcionando de modo correto e está reportando esses erros. Se fizer isso, o erro acima não ocorre e isso com as mesmas diretivas de compilação. Desculpem-me o incômodo.
Bom dia... no Delphi também, normalmente quando trocamos uma diretiva é necessário dar um clear e um build no projeto para pegar as alterações...