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}

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

  • 相关阅读:
    C++ 中static 使用大全
    JsonCpp 简单使用
    [转]C++ string的trim, split方法
    线程函数
    C++ 读写文件流
    JQ_返回顶部
    JQ_开发经验
    JQ_五星级评分特效
    JQ_One()函数特效
    JQ_插件开发
  • 原文地址:https://www.cnblogs.com/martian6125/p/9631025.html
Copyright © 2011-2022 走看看