Hello,
We observed a possible incompatibility between TRODynamicRequest and the generated server invoker in Delphi 13, Win32, using TROBinMessage.
When sending a Boolean parameter with value True:
- In TRODynamicRequest, the Boolean value is 1.
- TROStreamSerializer.WriteBoolean converts it to LongBool and writes -1 ($FFFFFFFF).
- The generated server invoker reads the parameter using __Message.Read(…, TypeInfo(Boolean), …). The resulting Boolean contains $FF instead of $01.
As a result, the debugger displays the parameter as True, but comparing to true evaluetes to false and the corresponding block is skipped.
Could you please check whether these serialization and deserialization paths are compatible?
Deserialization in file invk pas:
var
l_aSynchronize: Boolean;
begin
{ ... }
__Message.Read('aSynchronize', System.TypeInfo(Boolean), l_aSynchronize, []);
//after this debuger shows l_aSynchronize = True
if (l_aSynchronize = true) then // this evaluates to false
begin
end;
end;