Ignore:
Timestamp:
Nov 15, 2007, 3:18:41 AM (16 years ago)
Author:
dai_9181
Message:

COM修飾子に対応。COMインターフェイスを呼び出せるようにした

File:
1 edited

Legend:

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

    r359 r370  
    300300            }
    301301        }
     302        else if( pobj_c->IsComInterface() )
     303        {
     304            // COMインターフェイス メソッド呼び出し
     305
     306            //仮想関数(オブジェクトメソッド)呼び出し
     307            // pObj -> vtbl1 -> func1
     308            //               -> func2
     309            //               -> func3
     310
     311            int vtblMasterListIndex;
     312            pobj_c->GetVtblMasterListIndexAndVtblIndex( &userProc, vtblMasterListIndex, vtblIndex );
     313
     314            // vtblのポインタを取得
     315            //mov edx,dword ptr[ecx]
     316            compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EDX, REG_ECX, 0, MOD_BASE );
     317        }
    302318        else
    303319        {
     
    314330
    315331            // vtblマスターリストのポインタを取得
    316             //mov edx,dword ptr[ecx]
    317             compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EDX, REG_ECX, 0, MOD_BASE );
     332            //mov edx,dword ptr[ecx+sizeof(com_vtbl)]
     333            compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EDX, REG_ECX, PTR_SIZE, MOD_BASE_DISP8 );
    318334           
    319335            // vtblのポインタを取得
Note: See TracChangeset for help on using the changeset viewer.