zoukankan      html  css  js  c++  java
  • Delphi使用SuperObject解析Json提示“Integer overflow”解决办法

    将superobject.pas源代码中的如下代码:

    01

    02

    03

    04

    05

    06

    07

    08

    09

    10

    11

    12

    class function TSuperAvlEntry.Hash(const k: SOString): Cardinal;

    var

      h: cardinal;

      i: Integer;

    begin

      h := 0;

    {$Q-}

      for i := 1 to Length(k) do

        h := h*129 + ord(k[i]) + $9e370001;

    {$Q+}

      Result := h;

    end;

    修正为:

    01

    02

    03

    04

    05

    06

    07

    08

    09

    10

    11

    12

    {$UNDEF SaveQ} {$IFOPT Q+} {$Q-} {$DEFINE SaveQ} {$ENDIF}

    class function TSuperAvlEntry.Hash(const k: SOString): Cardinal;

    var

      h: cardinal;

      i: Integer;

    begin

      h := 0;

      for i := 1 to Length(k) do

        h := h*129 + ord(k[i]) + $9e370001;

      Result := h;

    end;

    {$IFDEF SaveQ} {$Q+} {$UNDEF SaveQ} {$ENDIF}

    重新编译后即可实现正常解析。

  • 相关阅读:
    共享内存
    文件IO函数和标准IO库的区别
    链表程序
    flash_header.S ( freescale imx6 board)
    深入理解二维数组
    putchar和puts
    指针目标
    C语言:break和continue
    C语言:输入输出
    python lambda
  • 原文地址:https://www.cnblogs.com/martian6125/p/9631025.html
Copyright © 2011-2022 走看看