Erro na função HB_OPENPROCESS

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

Moderador: Moderadores

Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Erro na função HB_OPENPROCESS

Mensagem por clodoaldomonteiro »

Olá amigos.

Para executar sistemas externos, usu a função HB_OpenProcess() que deve retornar -1 se acontecer algum erro durante a execução da expressão, conforme código abeixo:

Código: Selecionar todos

function MYRUN( cComando, msg )
   msg:=if(msg=NIL,'',msg)
   mValor:=hb_openprocess(cComando,,,,.t.)     //xhb.lib
   
   if mValor<0
      DBOX(msg+'|Erro do DOS nº ' + tran(ferror(),'99'),,,,,"ATENÇÃO!")
      RETU .f.
   endif   
   retu .t.
O problema é que a linha "if mValor<0", está retornando .t. e no meu teste deveria retornar .f., ai exibiria uma mensagem e retornaria como .f.

Vi que se eu inserir a linha "? mValor" antes da linha do IF, a rotina funciona perfeitamente bem.

Algém sabe me dizer o porque dessa falha?
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Erro na função HB_OPENPROCESS

Mensagem por alaminojunior »

Experimenta enxugar, tirando a variável.

Código: Selecionar todos

function MYRUN( cComando, msg )
msg:=if(msg=NIL,'',msg)
if hb_openprocess(cComando,,,,.t.)   < 0
   DBOX(msg+'|Erro do DOS nº ' + tran(ferror(),'99'),,,,,"ATENÇÃO!")
   RETU .f.
endif   
retu .t.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Re: Erro na função HB_OPENPROCESS

Mensagem por clodoaldomonteiro »

Alamino!

A dica foi perfeita, executou normal.
Valeu mesmo.

[Considero encerrado este tópico].
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Responder