Edu Posted July 9, 2015 Report Share Posted July 9, 2015 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 Quote Link to comment Share on other sites More sharing options...
rochinha Posted July 10, 2015 Report Share Posted July 10, 2015 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. Quote Link to comment Share on other sites More sharing options...
Edu Posted July 10, 2015 Author Report Share Posted July 10, 2015 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. Theotokos 1 Quote Link to comment Share on other sites More sharing options...
Theotokos Posted July 10, 2015 Report Share Posted July 10, 2015 Sempre é bom conhecer algo a mais.... eu e com certeza os colegas agradecemos... fkem com Deus! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.