首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HLA示例调用错误

HLA示例调用错误
EN

Stack Overflow用户
提问于 2012-10-13 23:43:11
回答 1查看 327关注 0票数 0

我从HLA界开始,我尝试编译示例,CallingHLA,然后HLA编译代码,我得到了以下错误:

代码语言:javascript
复制
Error in file "hlaFunc.hla" at line 76 [errid:82229/hlaparse.bsn]:
Too few actual parameters.
Near: << ) >>

HLAPARSE assembly failed with 1 errors

代码是:

代码语言:javascript
复制
unit hlaFuncUnit;

#include( "stdlib.hhf" )

procedure hlaFunc( i:int32 ); @cdecl; @external( "_hlaFunc" );

procedure BuildExcepts; @external("BuildExcepts__hla_");
procedure HardwareException; @external( "HardwareException__hla_" );
procedure DefaultExceptionHandler; @external( "DefaultExceptionHandler__hla_" );

procedure HWexcept; @external( "HWexcept__hla_" );
procedure DfltExHndlr; @external( "DfltExHndlr__hla_" );
procedure QuitMain; @external( "QuitMain__hla_" );

procedure ExitProcess( rtnCode:dword ); @external( "_ExitProcess@4" );

static
    MainPgmVMT: dword:= &QuitMain;

    MainPgmCoroutine:   dword[ 5 ]; @external( "MainPgmCoroutine__hla_" );
    MainPgmCoroutine:   dword; @nostorage;
                        dword &MainPgmVMT, 0, 0;
    SaveSEHPointer:     dword; @nostorage; // Still part of MainPgmCoroutine...
                        dword 0, 0;

procedure QuitMain;
begin QuitMain;

    ExitProcess( 1 );

end QuitMain;

procedure HWexcept;
begin HWexcept;

    jmp HardwareException;

end HWexcept;

procedure DfltExHndlr;
begin DfltExHndlr;

    jmp DefaultExceptionHandler;

end DfltExHndlr;

procedure hlaFunc( i:int32 );
var
    s:string;

begin hlaFunc;

    call BuildExcepts;

    try

        stdout.put( "stdout.put called from HLA code, i = ", i, nl );
        raise( 5 );

      exception( 5 );
        stdout.put( "Exception handled by HLA code" nl );

    endtry;

    try
        stralloc( 16 );
        mov( eax, s );
        str.cpy( "Hello World", s );
        stdout.put( "Successfully copied 'Hello World' to s: ", s, nl );
        str.cpy( "0123456789abcdefghijklmnop", s );
        stdout.put( "Shouldn't get here" nl );

      anyexception

        stdout.put( "Exception code: ", eax, nl );
        ex.printExceptionError();

    endtry;
    strfree( s );
    stdout.put( "Returning to C code" nl );

    mov( SaveSEHPointer, eax );

    #asm
        mov fs:[0], eax
    #endasm

end hlaFunc;

end hlaFuncUnit;

错误在哪里(我知道,错误在尝试中),但是,我如何解决这个错误呢?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-04 23:29:52

问题是printExceptionError,它应该是这样的:

代码语言:javascript
复制
ex.printExceptionError( eax, ebx, ecx, edx, edi );

因此,正如错误所说,您缺少参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12874658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档