Retorno de LoadLibrary

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Retorno de LoadLibrary

Mensagem 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 ?
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

Retorno de LoadLibrary

Mensagem 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
Atenciosamente,
Marcos Antonio Gambeta
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Retorno de LoadLibrary

Mensagem 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.
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Retorno de LoadLibrary

Mensagem 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
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Retorno de LoadLibrary

Mensagem 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.
Responder