共用方式為


發出 LUA 動詞

需要下列程式,才能發出邏輯單元應用程式 (LUA) 動詞命令。 在此範例中,發出動詞命令 RUI_INIT

發出 LUA 動詞命令

  1. 建立動詞控制區塊的變數, (VCB) 結構。 例如:

    #include <winlua.h>  
            .  
            .  
    struct LUA_VERB_RECORD rui_init;  
    
    
  2. LUA_VERB_RECORD結構會在 WINLUA 中宣告。H 標頭檔。

  3. 清除 (設定為零,) VCB 內的變數:

    memset( &rui_init, 0, sizeof( rui_init) );  
    

    LUA 要求發出動詞命令不需要的所有保留參數,都必須設定為零。 若要這樣做,最簡單的方式是先將整個 VCB 設定為零,再設定這個特定動詞命令所需的參數。

  4. 將值指派給 VCB 參數,以提供資訊給 LUA:

    rui_init.common.lua_verb = LUA_VERB_RUI;  
    rui_init.common.lua_verb_length = sizeof(struct LUA_COMMON);  
    rui_init.common.lua_opcode = LUA_OPCODE_RUI_INIT;  
    memcpy (rui_init.common.lua_luname, "THISLU  ", 8);  
    

    LUA_VERB_RUI和LUA_OPCODE_RUI_INIT的值是符號常數。 這些常數定義于 WINLUA 中。主機整合伺服器 SDK 中的 H 標頭檔。 若要確保不同系統之間的可攜性,請使用符號常數,而不是整數值。

  5. 叫用 LUA。 唯一的參數是結構位址的指標,其中包含所需動詞命令的 VCB。

    RUI( &rui_init );  
    
  6. 檢查非同步旗標 (rui_init.common.lua_flag2.async) ,以判斷動詞是否以非同步方式完成。 如果使用事件,且動詞命令以非同步方式完成,請等候事件完成。

    if (rui_init.common.lua_flag2.async)  
    {  
    /* verb will complete asynchronously so continue  
    with other processing */  
    /* then wait */  
    WaitForSingleObject (...)  
    }  
    

    請勿檢查傳回碼。 它可能已從LUA_IN_PROGRESS變更為在您檢查LUA_OK。

  7. 檢查 LUA 傳回的變數。

    if( rui_init.common.lua_prim_rc == LUA_OK )  
    {  
    /* Init OK */  
            .  
            .  
    }   
    else  
    {  
    /* Do error routine */  
            .  
            .  
    }