Home

Tecnologia TOTVS

Páginas filhas
  • ExeDLLRun3
Ir para o final dos metadados
Ir para o início dos metadados

Invalid License

Your license for maintenance of Composition is not valid for this version. Please use the Renew button to renew your Composition license.

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

Sintaxe

ExeDLLRun3( < 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

 

Observações

  • A variável cBuffer tem limite de 20000 caracteres, para ser passada como referencia.

Exemplos

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

Atenção

Como pode ser observado, a dll desenvolvida para ser executada com a função ExeDLLRun3 tem uma assinatura diferente da utilizada em ExeDLLRun2 e ExeinDLLRun, por isso não são compatíveis e podem causar erros fatais na execução.

User Function Exemplo()

Local hHdl := 0,buffer := "",xRet1 := 0
// Abre Dll
hHdl := ExecInDLLOpen( "TSTDLL.DLL" )

// ExeDllRun3 retorna valor numérico da DLL
buffer:= "Executando a partir da ExeDllRun3..."
nRet3 := ExeDllRun3( hHdl, 1, @buffer )
msgalert("Retorno da ExeDllRun3: " + StrZero(nRet3,3) + "; Conteudo do buffer por parametro: " + buffer)

// ----------------------------------------------------------------
// Fecha a DLL
ExecInDllClose( hHdl )

Return

Preview

Veja também

 

  • Sem rótulos