Página 1 de 1

Retorno de LoadLibrary

Enviado: 06 Jul 2017 11:51
por alaminojunior
Bom dia caros !

Já há muito tempo utilizo a função LoadLibrary para instanciar as DLL´s dos fabricantes de ECF.
Até um certo release do xHarbour (não sei ao certo qual) o retorno desta função era um número com o handle.
Então como cita o manual, eu sempre tratei em cima desse retorno. Se retornasse 0, DLL não encontrada, se retornasse um número negativo, DLL não foi carregada por algum motivo, e retornando um número maior que zero, sucesso !

Código: Selecionar todos

h1:= LoadLibrary("InterfaceEpson.dll")
Ontem fiz atualização do xHarbour pelo SVN, baixei o BCC 7.30 taquei o pau. Recompilei tudo e agora estou testando ...

Ocorre que nesta versão, o retorno é um ponteiro !!! e com isso meus tratamentos foram todos para o brejo !
Verifiquei o fonte dllcall.c e realmente constam alterações nesse sentido.

Alguém já passou por esse caminho ?

Retorno de LoadLibrary

Enviado: 06 Jul 2017 12:24
por marcosgambeta
alaminojunior escreveu:Ocorre que nesta versão, o retorno é um ponteiro !!![/b] e com isso meus tratamentos foram todos para o brejo !
Retornar um ponteiro no lugar de um número é uma opção melhor. Você pode testar usando a função empty:

Código: Selecionar todos

IF !Empty(pHandle)
   // OK
ELSE
  // erro
ENDIF

Retorno de LoadLibrary

Enviado: 06 Fev 2019 21:16
por Mario Mesquita
Boa noite, amigos.

Pergunta: qual o equivalente no Harbour dessa função LoadLibrary() ?

Ela é do xHarbour, não é? Deve ter uma função que faz a mesma coisa, carregar uma DLL.

Quem souber, agradeço a dica.

Saudações,
Mario.

Retorno de LoadLibrary

Enviado: 06 Fev 2019 22:12
por MSDN
Usando o HBMK2 vc consegue achar o que precisar dentro do Harbour :

Exemplo

C:\>hbmk2 -find loadlibrary
Harbour core (installed):
wapi_LoadLibrary()
hbwin.hbc (installed):
wapi_LoadLibrary()

C:\>

Abraços

Retorno de LoadLibrary

Enviado: 07 Fev 2019 12:03
por Mario Mesquita
Bom dia a todos.

Obrigado, Marcelo. Confesso que não tenho muita prática com essa parte do compilador. Essa possibilidade de ativar uma DLL externa é interessante e pode ser muito útil.

Saudações,
Mario.