Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Migration of unmigrated content due to installation of a new plugin
Composition Setup
import.css=/download/attachments/327912/newLayout.css
Portuguese

Pagetitle
ExecInDLLRun
ExecInDLLRun

Função: ExecInDLLRun

Executa functions ou procedures de uma determinada DLL - Dynamic-link library (Biblioteca de ligação dinâmica).

ExecInDLLRun ( < nHandle>, < nOpc>, < cBuffer> ) --> Nil

NomeTipoDescriçãoObrigatórioReferência
nHandleNuméricoIndica o handle da DLL obtida através da função ExecInDLLOpen(). X
nOpcNuméricoIndica a opção que será executada pela DLL. X
cBufferCaracterIndica o buffer, no formato caracter, que será recebido pela DLL. X
Nil (Nulo)

Esta função não retorna o valor da DLL. Caso seja necessário, utilize a função ExeDLLRun2(). A variável cBuffer tem limite de 259 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;beginend.//============================================================// ROTINA EM AdvPL PARA CHAMADA DA DLL//============================================================// Abre DllhHdl := 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 DLLbuffer:= "Executando a partir da ExecInDllRun..."xRet1 := ExecInDllRun( hHdl, 1, @buffer )  alert("Retorno da ExecInDllRun: " + xRet1)// ExeDllRun2 retorna valor numérico da DLLbuffer:= "Executando a partir da ExeDllRun2..."nRet2 := ExeDllRun2( hHdl, 1, @buffer ) alert("Retorno da ExeDllRun2: " + StrZero(nRet2,3))       // ExeDllRun3 retorna valor numérico da DLLbuffer:= "Executando a partir da ExeDllRun3..."nRet3 := ExeDllRun3( hHdl, 1, @buffer ) alert("Retorno da ExeDllRun3: " + StrZero(nRet3,3))       // ----------------------------------------------------------------// Fecha a DLLExecInDllClose( hHdl )
Microsiga Protheus 8.11 , TOTVS Application Server 10 , ByYou Application Server