Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Função: ExecInDLLOpen

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

ExecInDLLOpen ( < cDLLName> ) --> nHandle

NomeTipoDescriçãoObrigatórioReferência
cDLLNameCaracterIndica o nome do arquivo da DLL. X
    nHandle(numerico)
  • Retorna o handle de abertura da DLL.

A DLL que será manipulada deve estar no mesmo diretório do Smart Client.

//============================================================// 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 )    

Exemplo da função ExecInDLLOpen()
Microsiga Protheus 8.11 , TOTVS Application Server 10 , ByYou Application Server

  • No labels