Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

Utilização das DLLs geradas na OpusWin

As DLLs geradas através de programas OpusWin podem ser utilizadas em todos aqueles ambientes e plataformas que suportem esse tipo de bibliotecas dinâmicas.

Execução de DLLs na OpusWin

As DLLs geradas através de programas OpusWin podem ser executadas em programas OpusWin, por exemplo, através das funções RunDLL e WinDLL.

Função RunDLL

A função lógica RunDLL permite a execução de DLLs, em background, a partir de um programa OpusWin, invocando rotinas dessa DLL e passando os parâmetros necessários. RunDLL executa em background, sem abrir janelas de diálogo Windows, chamando a rotina indicada e passando o parâmetro especificado.

A sintaxe correta é a seguinte:

f=RunDLL (<dll>,<rotina>[,<parms>)[,<tam>]]

Onde:

<dll>

Especifica o nome da DLL a ser carregada.

<rotina>

Especifica o nome da rotina (dentro da DLL) a ser executada.

<parms>

Informa, opcionalmente, os parâmetros a serem passados para a rotina da DLL.

<tam>

Se houver informação de parâmetros, deve ser especificado o tamanho dos parâmetros a serem passados para a rotina da DLL.

Exemplos

RunDLL ("defcom32.dll", "defcom", "define –f –desq.err esq.e")

RunDLL ("opucom32.dll", "opucom", "opus –f –dp.err p.f")

RunDLL ("dla.dll", "rot1")

RunDLL ("dla.dll", "rot2", varpar,20)

Função WinDLL

A função lógica WinDLL permite a execução de DLLs, a partir de um programa OpusWin, invocando rotinas dessa DLL e passando os parâmetros necessários. WinDLL comanda a execução da DLL, abrindo uma nova janela de diálogo, chamando a rotina indicada e passando o parâmetro especificado.

A sintaxe correta é a seguinte:

f=WinDLL (<dll>,<rotina>[,<parms>)[,<tam>]]

Onde:

<dll>

Especifica o nome da DLL a ser carregada.

<rotina>

Especifica o nome da rotina (dentro da DLL) a ser executada.

<parms>

Informa, opcionalmente, os parâmetros a serem passados para a rotina da DLL.

<tam>

Se houver informação de parâmetros, deve ser especificado o tamanho dos parâmetros a serem passados para a rotina da DLL.

Exemplos

WinDLL ("defcom32.dll", "defcom", "define –f –desq.err esq.e")

WinDLL ("opucom32.dll", "opucom", "opus –f –dp.err p.f")

WinDLL ("dla.dll", "rot1")

WinDLL ("dla.dll", "rot2", varpar,20)

Execução de DLLs em VB

Em Visual BASIC, a declaração das funções de uma DLL apresenta a seguinte sintaxe:

private declare function p1 lib "<dir>\nome-da-dll"  (byval a1 as string, ta1 as integer

   [,..., byval an as string, tan as integer]) as integer

[ ...

private declare function pn lib "<dir>\nome-da-dll"  (byval b1 as string, tb1 as integer

   [,..., byval bn as string, tbn as integer]) as integer

]

Para cada parâmetro string é passado, na chamada, o seu tamanho máximo.

dim  ta1 as integer

ta1 = nn

dim  tan as integer

tan = nn

dim  tb1 as integer

tb1 = nn

dim  tbn as integer

tbn = nn

dim a1 as string * ta1

...

dim an a string * tan

dim ret1 as integer

ret1=p1(a1,ta1,...,an,tan)

dim b1 as string * tb1

...

dim bn a string * tbn

dim ret2 as integer

ret2=p2(b1,tb1,...,bn,tbn)

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!