Á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.

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

Pagetitle

...

...

ExecInDllOpen
ExecInDllOpen

Abre

...

uma

...

DLL (Dynamic-link

...

library , ou Biblioteca de vinculo dinâmica)

...

para

...

executar

...

functions

...

ou

...

procedures.

Sintaxe

ExecInDLLOpen ( < cDLLName> ) --> nHandle

...

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 SmartClient ou do Web-Agent (normalmente em C:\Users\usuario\AppData\Local\Programs\web-agent ou /opt/web-agent)

Exemplos

do Smart Client.

 

DLL de exemplo em Delphi
Bloco de código
languagecpp
themeEclipse
Bloco de código
themeEclipse
languagedelphi
title
linenumberstrue
collapsefalse
extern "C" __declspec(dllexport) void
library DLLProtheus; uses sysutils; {$R *.RES} function
 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.
}
}
Rotina de exemplo em AdvPL
Bloco de código
themeEclipse
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