Erro na compilação

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Erro na compilação

Mensagem por Paulo_CPV »

Boa noite, colegas!

Espero que alguém me possa ajudar com este erro que na compilação do meu sistema.

Código: Selecionar todos

Borland C++ 5.6 for Win32 Copyright (c) 1993, 2002 Borland
sismaincli.c:
Turbo Incremental Link 5.60 Copyright (c) 1997-2002 Borland
Error: Unresolved external '_HB_FUN_JANELAGENERICA' referenced from D:\CADCLIENTES\SISMAINCLI.OBJ

Link error.

Pressione qualquer tecla para continuar. . . 
O engraçado é que a função está declarada certa e mesmo que eu troque o nome dela sempre da este erro o que muda é só o nome da função.

Código: Selecionar todos

CLASS Sistema

   METHOD JanelaGenerica( cForm , cTitulo , n1 , n2 , n3 , n4 , aCor , bRot )

END CLASS

METHOD JanelaGenerica( cForm , cTitulo , n1 , n2 , n3 , n4 , aCor , bRot ) CLASS Sistema

   DEFINE WINDOW &cForm ;
   AT ::W(n1) , ::H(n2) WIDTH ::W(n3) HEIGHT ::H(n4) ;
   TITLE cTitulo ;
   ICON '' ;
   MODAL ;
   BACKCOLOR aCor ;
   FONT "Arial" SIZE 10 ;
   ON INIT EVAL(bRot)
   
// ON KEY ESCAPE ACTION {|| ::SaiSistema()}
   
   END WINDOW
   
   ThisWindow.Center ; ThisWindow.Activate

RETURN NIL
E se eu tiro a função ele compila sem erros, como eu posso resolver este problema? Estou utilizando o Minigui 2.4.2 Exdend e Hsrbour.

Abraços,

Paulo - Jacareí/SP
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Erro na compilação

Mensagem por sygecom »

Paulo,
Acedito que sua postagem esteja pela metade, no .PRG da classe tem o INCLUDE ?
#include "hbclass.ch"
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Erro na compilação

Mensagem por Paulo_CPV »

Bom dia!

Colega sim está com #include "hbclass.ch" no começo do arquivo .prg e por acaso está em todos os arquivos do meu sistema. O inicio dos arquivos está assim:

Código: Selecionar todos

#include "minigui.ch"
#include "SisCabClientes.ch" -> definições do meu sistema
#include "Fileio.ch"
#include "Common.ch"
#include "Directry.ch"
#include "tsbrowse.ch"
#include "hbclass.ch"
#include "dbstruct.ch"
#include "ord.ch"
#include "BosTaurus.ch"
#include "hbcompat.ch"
Abraços,
Paulo - Jacareí/SP
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Erro na compilação

Mensagem por Toledo »

Paulo, dê mais detalhes de como você está usando esta função. Na sua mensagem anterior você só mostrou o código da função, mas como você está usando ela?

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Erro na compilação

Mensagem por Paulo_CPV »

Boa tarde, Toledo!

Estou tentando usar desta forma:

Código: Selecionar todos

JanelaGenerica( "Janela009" , "Controle de Pagamento de Fluxo" , 84 , 1 , 803 , 463 , { || ::AvisoSistema() , ::SaiSistema() } )
Abraços,

Paulo - Jacareí/SP
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Erro na compilação

Mensagem por alxsts »

Olá!

Se "JanelaGenerica" é um método da classe "Sistema", para invocar o método, é necessário primeiro instanciar a classe:

Código: Selecionar todos

LOCAL oSis

   oSis := Sistema:new()

   oSis:JanelaGenerica( "Janela009" , "Controle de Pagamento de Fluxo" , 84 , 1 , 803 , 463 , { || ::AvisoSistema() , ::SaiSistema() } )
[]´s
Alexandre Santos (AlxSts)
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Erro na compilação

Mensagem por Paulo_CPV »

Boa tarde!

Colega, obrigado pela sua dica,eu consegui resolver aqui com:

::JanelaGenerica(...)

Só agora não consigo pegar o nome da janela. Por exemplo:

eu coloco no parâmetro cForm

::JanelaGenerica("Janela09",...)

DEFINE WINDOW &cForm
...

END WINDOW

&cForm.Center ; &cForm.Activate <- Aqui que dá o erro, pois ele está pegando o nome da tela principal e não a que eu estou definindo, a rotina não está colocando "Janela09.Center ; Janela09.Activate"

O que pode ser feito?

Abraços,

Paulo - Jacareí/SP
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Erro na compilação

Mensagem por Toledo »

Paulo_CPV escreveu:&cForm.Center ; &cForm.Activate <- Aqui que dá o erro
Neste caso você pode usar:

Código: Selecionar todos

CENTER WINDOW &cForm
ACTIVATE WINDOW &cForm
ou

Código: Selecionar todos

DoMethod( cForm, 'Center' )
DoMethod( cForm, 'Activate' )
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Paulo_CPV
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 07 Mar 2013 10:27
Localização: Jacarei/SP

Erro na compilação

Mensagem por Paulo_CPV »

Boa noite!

Obrigado a todos que me ajudaram a resolver o meu problema. Agora está funcionando perfeitamente.

Abraços,

Paulo - Jacareí/SP
Responder