
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.
As DLLs geradas através de programas OpusWin podem ser executadas em programas OpusWin, por exemplo, através das funções RunDLL e WinDLL.
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)
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)
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)
