• Lazarus下面的javascript绑定另外一个版本bug修正


    Lazarus下面的javascript绑定另外一个版本bug修正

     

     

    从svn 检出的代码有几个问题

     

     

    1.fpcjs.pas 单元开始有

     

    {$IFDEF FPC}

    {$MODE delphi}

    {$ENDIF}      

     

    设置的delphi模式,可是后面有这样的代码

     

      {$ifndef fpc}

        // inc(argv,i); pom := pjsval(argv^); dec(argv,i);}   // this original code does not work in delphi 7

        // pom := TArrayOfPjsval(argv)[i];                    // for some reason this is not working either, assuming type TArrayOfPjsval = array of pjsval;

        pom := pjsval(integer(argv)+i*sizeof(pjsval));        // working hack

        {$else}

     

        pom := pjsval(argv + i);

     

    {$endif}      

     

    注意红色的部分,其实作者是想在delphimode 使用   

      pom := pjsval(integer(argv)+i*sizeof(pjsval));        // working hack

     

    可是用 

     {$ifndef fpc} 

    判断是不科学的,这句判定在lazarus编译的时候会认为 

    Fpc已经定义,所以执行

        pom := pjsval(argv + i);

    这句,导致错误。

     

    修改的方法是,最前面变成

     

    {$IFDEF FPC}

    {$MODE delphi}

    {$DEFINE myfpc}

    {$ENDIF}

                   

     

    增加一个定义,然后后面这里

     

      {$ifdef myfpc}

        // inc(argv,i); pom := pjsval(argv^); dec(argv,i);}   // this original code does not work in delphi 7

        // pom := TArrayOfPjsval(argv)[i];                    // for some reason this is not working either, assuming type TArrayOfPjsval = array of pjsval;

        pom := pjsval(integer(argv)+i*sizeof(pjsval));        // working hack

        {$else}

     

        pom := pjsval(argv + i);

     

        {$endif}       

     

    让他在delphi模式的时候执行 delphi 模式的指针操作。

     

     

    Fpcjs源码库的来源是

    http://code.google.com/p/fpcjs/

  • 相关阅读:
    Java——HashSet和TreeSet的区别
    TreeSet和TreeMap不能存放重复元素?能不能存放null?其实不是这样的——灵活的二叉树
    Java 数组元素逆序Reverse的三种方式
    Java开发中使用sort排序
    Android Studio导入第三方库的三种方法
    Android下拉涮新第三方通用控件
    手把手教你MyEclipseUML建模(下)
    手把手教你MyEclipseUML建模(上)
    java enum(枚举)使用详解 + 总结
    翻译学python---《Learn Python the hard Way》---第一章 绪论
  • 原文地址:https://www.cnblogs.com/stevenlaz/p/3277125.html
Copyright © 2020-2023  润新知