Changeset 283 in dev for trunk/abdev/BasicCompiler32


Ignore:
Timestamp:
Aug 15, 2007, 3:22:56 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev/BasicCompiler32
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/CParameter.cpp

    r225 r283  
    220220            if(Parms[i2][0]==1&&Parms[i2][1]==ESC_BYVAL){
    221221                char temp2[255];
    222                 sprintf(temp2,"%s関数の第%dパラメータ",procName,i2+1);
     222                sprintf(temp2,"%s関数の第%dパラメータ",procName.c_str(),i2+1);
    223223                SetError(19,temp2,cp);
    224224                continue;
  • trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp

    r282 r283  
    751751
    752752void CompileBufferInProcedure( const UserProc &userProc ){
    753     if( userProc.IsUsing() == false || userProc.IsCompiled() ) return;
     753    if( userProc.IsCompiled() ) return;
    754754
    755755    _compile_proc( &userProc );
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r282 r283  
    401401        InitGCVariables();
    402402
    403         //_System_StartupProgramの呼び出し
    404         compiler.codeGenerator.op_call(pSub_System_StartupProgram);
     403        if( compiler.IsStaticLibrary() ){
     404            //_System_StartupProgramの呼び出し
     405            compiler.codeGenerator.op_call(pSub_System_StartupProgram);
     406        }
    405407
    406408        //クラスに属する静的メンバを定義
     
    423425
    424426
    425         ///////////////////////////////////////
    426         // グローバル文字列変数の解放処理
    427         ///////////////////////////////////////
    428 
    429         //call _System_End
    430         extern const UserProc *pSub_System_End;
    431         compiler.codeGenerator.op_call(pSub_System_End);
    432 
    433 
    434         //xor eax,eax(eaxを0に初期化する)
    435         compiler.codeGenerator.op_zero_reg(REG_EAX);
    436 
    437         //pop ebp
    438         compiler.codeGenerator.op_pop(REG_EBP);
    439 
    440         //ret
    441         compiler.codeGenerator.op_ret();
     427        if( !compiler.IsStaticLibrary() )
     428        {
     429            ///////////////////////////////////////
     430            // グローバル文字列変数の解放処理
     431            ///////////////////////////////////////
     432
     433            //call _System_End
     434            extern const UserProc *pSub_System_End;
     435            compiler.codeGenerator.op_call(pSub_System_End);
     436
     437
     438            //xor eax,eax(eaxを0に初期化する)
     439            compiler.codeGenerator.op_zero_reg(REG_EAX);
     440
     441            //pop ebp
     442            compiler.codeGenerator.op_pop(REG_EBP);
     443
     444            //ret
     445            compiler.codeGenerator.op_ret();
     446        }
    442447
    443448        //グローバル実行領域のコードサイズ
Note: See TracChangeset for help on using the changeset viewer.