Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La procedura seguente è necessaria per emettere un verbo LUA (Logical Unit Application). In questo esempio il verbo emesso viene RUI_INIT.
Per rilasciare un comando LUA
Creare una variabile per la struttura del blocco di controllo verbo (VCB). Per esempio:
#include <winlua.h> . . struct LUA_VERB_RECORD rui_init;La struttura LUA_VERB_RECORD viene dichiarata nel file di intestazione WINLUA.H.
Cancella (impostato su zero) le variabili all'interno di VCB:
memset( &rui_init, 0, sizeof( rui_init) );LUA richiede che tutti i parametri riservati e tutti i parametri non richiesti dal verbo rilasciato siano impostati su zero. Il modo più semplice per eseguire questa operazione consiste nell'impostare l'intero vcb su zero prima di impostare i parametri necessari per questo verbo specifico.
Assegnare valori ai parametri VCB che forniscono informazioni a 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);I valori LUA_VERB_RUI e LUA_OPCODE_RUI_INIT sono costanti simboliche. Queste costanti sono definite nel file di intestazione WINLUA.H nel SDK di Host Integration Server. Per garantire la portabilità tra sistemi diversi, usare costanti simboliche e non valori interi.
Invocare LUA. L'unico parametro è un puntatore all'indirizzo della struttura contenente il vcb per il verbo desiderato.
RUI( &rui_init );Controllare il flag asincrono (rui_init.common.lua_flag2.async) per determinare se il verbo è stato completato in modo asincrono. Se vengono usati eventi e il verbo è stato completato in modo asincrono, attendere il completamento dell'evento.
if (rui_init.common.lua_flag2.async) { /* verb will complete asynchronously so continue with other processing */ /* then wait */ WaitForSingleObject (...) }Non controllare il codice restituito. Potrebbe essere passato da LUA_IN_PROGRESS a LUA_OK al momento in cui lo verifichi.
Controllare le variabili restituite da Lua.
if( rui_init.common.lua_prim_rc == LUA_OK ) { /* Init OK */ . . } else { /* Do error routine */ . . }