Página 1 de 1

Erro na compilação

Enviado: 07 Jan 2015 21:30
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

Erro na compilação

Enviado: 11 Jan 2015 12:45
por sygecom
Paulo,
Acedito que sua postagem esteja pela metade, no .PRG da classe tem o INCLUDE ?
#include "hbclass.ch"

Erro na compilação

Enviado: 12 Jan 2015 06:55
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

Erro na compilação

Enviado: 12 Jan 2015 07:42
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,

Erro na compilação

Enviado: 12 Jan 2015 13:41
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

Erro na compilação

Enviado: 12 Jan 2015 15:55
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() } )

Erro na compilação

Enviado: 12 Jan 2015 16:54
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

Erro na compilação

Enviado: 12 Jan 2015 20:31
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,

Erro na compilação

Enviado: 12 Jan 2015 21:55
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