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 6 Current »

Executa funções ou procedures de uma DLL (Dynamic-link library , ou Biblioteca de vinculo dinâmica).

Sintaxe

ExeDLLRun2( < nHandle >, < nOpc >, < cBuffer > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

nHandle

caractere

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

caractere

Indica o buffer, no formato caracter, que será recebido pela DLL.

X

 

Retorno

Nome

Tipo

Descrição

N

n

Retorno da DLL após o processamento.

Observações

  • A variável cBuffer tem limite de 20000 caracteres, para ser passada como referencia.
  • Como pode ser observado, a dll desenvolvida para ser executada com a função ExecinDLLRun tem uma assinatura diferente da utilizada em ExeDLLRun3, por isso não são compativeis e podem causar erros fatais na execução.

Exemplos

Exemplo 1
extern "C" __declspec(dllexport) void ExecInClientDLL(int ID, char * Buf, char * Buf2, int nBuf2)
{
  if(ID==1)
  {
    strcpy(Buf2,"Retorno opção 01");
  }
  else if (ID == 2)
  {
    strcpy(Buf2, "Retorno opção 02");
  }
}
Exemplo 2
User Function Exemplo()

Local hHdl := 0,buffer := "",xRet1 := 0 
// 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))
 
// ----------------------------------------------------------------
// Fecha a DLL
ExecInDllClose( hHdl )

Return

Preview

Veja também

  • No labels