Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Aviso
titleImportante

Esta função abre somente DLLs assinadas com o modelo descrito no exemplo. Para integração com DLLs de terceiros é necessário a criação de uma DLL Middleware, para comunicação com a DLL de terceiro.

Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css
Portuguese

Pagetitle

...

ExecInDllOpen

...

Função: ExecInDLLOpen

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

ExecInDLLOpen ( < cDLLName> ) --> nHandle

...

ExecInDllOpen

Abre uma DLL (Dynamic-link library , ou Biblioteca de vinculo dinâmica) para executar functions ou procedures.

Sintaxe

Bloco de código
collapsefalse
ExecInDllOpen( < cDLLName > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cDLLName

...

caractere

Indica o nome

...

e caminho da DLL.

X


Retorno

...

Nome

...

Tipo

...

Descrição

nHandle

...

numérico

Retorna o handle de abertura da DLL.

Observações

...

  • Caso não informado o caminho, a aplicação irá procurar a DLL no mesmo diretório do Smart Client.

...

Exemplos

EclipsedelphiDLL de exemplo em Delphi
}
}
Bloco de código
theme
language
cpp
title
themeEclipse
linenumberstrue
collapsefalse
library DLLProtheus; uses sysutils; {$R *.RES} function
extern "C" __declspec(dllexport) void ExecInClientDLL(int ID
:
, 
Integer;
char 
aPar: PChar; Buf: PChar; nBuf: Integer ): integer; stdcall; begin result := -1; if (ID = 1) then begin
* Buf, char * Buf2, int nBuf2)
{
  if(ID==1)
  {
    
StrPCopy
strcpy(
Buf, PChar('
Buf2,"Retorno opção 01
')
");
  
result := 200;
}
  
end
else if (ID == 2)
then begin

  {
    
StrPCopy
strcpy(
Buf
Buf2, 
PChar('
"Retorno opção 02
')
");
  
result := 300; end; end; exports ExecInClientDLL; begin end.
Bloco de código
themeEclipse
Rotina de exemplo em AdvPL
Bloco de código
languagecpp
title
themeEclipse
linenumberstrue
collapsefalse
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)) // 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 )

Return
 

Preview

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

...

Image Added

Veja também