Função: ExeDLLRun2
Executa functions ou procedures de uma determinada DLL - Dynamic-link library (Biblioteca de ligação dinâmica).
ExeDLLRun2 ( < nHandle>, < nOpc>, < cBuffer> ) --> nRet
Nome | Tipo | Descrição | Obrigatório | Referência |
nHandle | Numérico | Indica o handle da DLL obtida através da função ExecInDLLOpen(). | X | |
nOpc | Numérico | Indica a opção que será executada pela DLL. | X | |
cBuffer | Caracter | Indica o buffer, no formato caracter, que será recebido pela DLL. | X |
nRet
- (numerico)
- Retorno vindo da DLL após o processamento.
A variável cBuffer tem limite de 20000 caracteres, para ser passada como referencia.
//============================================================
// DLL DE EXEMPLO EM DELPHI
//============================================================
library TSTDLL;
uses Dialogs;
{$R *.RES}
function ExecInClientDLL( aFuncID: Integer;
aParams: PChar;
aBuff: PChar;
aBuffSize: Integer ): integer; stdcall;
begin
if aFuncID=1 then begin
// Roda opção 01
showmessage('Executando pela DLL - Texto via parametro: '+chr(13) + aParams);
result:=999;
end;
if aFuncID=2 then begin
// Roda opção 02
result:=-1;
end;
end;
exports ExecInClientDLL;
begin
end.
//============================================================
// ROTINA EM AdvPL PARA CHAMADA DA DLL
//============================================================
// Abre Dll
hHdl := ExecInDLLOpen( "TSTDLL.DLL" )
// ----------------------------------------------------------------
// Envia comando para execução, repare que estamos
// usando a opção "1" no momento de chamar a DLL.
// ----------------------------------------------------------------
// ExecInDllRun não retorna valor da DLL
buffer:= "Executando a partir da ExecInDllRun..."
xRet1 := ExecInDllRun( hHdl, 1, @buffer )
alert("Retorno da ExecInDllRun: " + xRet1)
// ExeDllRun2 retorna valor numérico da DLL
buffer:= "Executando a partir da ExeDllRun2..."
nRet2 := ExeDllRun2( hHdl, 1, @buffer )
alert("Retorno da ExeDllRun2: " + StrZero(nRet2,3))
// ExeDllRun3 retorna valor numérico da DLL
buffer:= "Executando a partir da ExeDllRun3..."
nRet3 := ExeDllRun3( hHdl, 1, @buffer )
alert("Retorno da ExeDllRun3: " + StrZero(nRet3,3))
// ----------------------------------------------------------------
// Fecha a DLL
ExecInDllClose( hHdl )
Microsiga Protheus 8.11 , TOTVS Application Server 10 , ByYou Application Server
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas