Jump to content
Fivewin Brasil

Executar funções de DLL


Edu

Recommended Posts

Bom dia pessoal!

Eu desenvolvi uma dll no visual basic 2013 e não consigo executar as funções, está retornando NIL. Alguém já fez coisa parecida e pode me ajudar?

Código Fivewin:

#include "Fivewin,ch"

FUNCTION MAIN()

PUBLIC xDll:= LoadLib32("nomedadll.dll")

lRet:= RetornaStr()
? lRet
FreeLibrary(xDll)
RETURN NIL
DLL32 FUNCTION RetornaStr() AS STRING PASCAL LIB xDll
Link to comment
Share on other sites

Amiguinho,

Tudo vai depender de COMO voce criou esta .DLL e qual era a finalidade. O fato de ter a extensão .DLL não significa que ela seja uma biblioteca dinâmica, podendo ser um executável com ponto de entrada no formato .DLL.

É necessário verificar se você colocou as funções como EXPORTÁVEIS para que sejam visualizadas externamente por qualquer aplicação.

Outra coisa é saber se o resultado das funções seria estilo DADO ou PONTEIRO.

Ao usar as funções de acesso a .DLL do Fivewin, dependendo da conveção utilizada para intercâmbio, colocar ou retirar o parâmetro PASCAL ajuda.

As convenções que usamos para definir o conteúdo de um dado em uma variável de forma que visualmente possamos distinguir os seus dados são:

sRet - significa que armazenamos algum dado do tipo String

nRet - significa que armazenamos algum dado do tipo Numérico

lRet - significa que armazenamos algum dado do tipo Lógico

dRet - significa que armazenamos algum dado do tipo Data

mRet - significa que armazenamos algum dado do tipo Memo ou memória

E assim por diante.

O SUS agradeçe o seu contato.

SUS - Sistema Único de Suporte.

Link to comment
Share on other sites

Boa tarde Rochinha!

Primeiramente obrigado pela resposta. Acompanho seus posts e sei que você conhece muito. Obrigado pela explicação!

Bom, eu consegui resolver aqui. Após muitas pesquisas e um pouco de perseverança consegui fazer minha dll funcionar com o Fivewin.

Só pra constar que meu conhecimento na plataforma .NET é básico, mas vou tentar explicar mais ou menos o que fiz.

Ao invés de criar a classe normalmente, eu pesquisei sobre COM Objects e lembrei que o fivewin tem suporte á esses objetos. "Graças a Deus!".

Então criei um COM Class no VB.NET, criei também uma assinatura Assembly para que o registro da dll no windows não apresentasse erros.

Resumindo, consegui registrar a dll no windows e estou utilizando sem problemas.

Instancio minha classe com o comando: CreateObject() e executo os metodos sem problemas.

Não preciso mais carregar a dll com LoadLibrary() e declarar "DLL32 FUNCTION..."

Se for do seu interesse ou dos demais, eu posto um tutorial aqui.

Forte abraço.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...