Redefinition of procedure or function:
Moderador: Moderadores
-
alvaro.bernardi
- Usuário Nível 1

- Mensagens: 40
- Registrado em: 22 Nov 2008 11:02
- Localização: Porto Velho
Redefinition of procedure or function:
Bom dia,
Estou migrando o sistema de modo texto para gráfico utilizando o o HwGui, porém ocorre o erro de "Redefinition of procedure or function:" que não ocorria quando compilado no modo texto com as opções /m /n ativadas, quando migrei do clipper para o Harbour coloquei em todos os PRGs "Function talFuncao_etc_etc", porém agora ele reclama. Tenho que retirar essa declaração de todos os prgs ?? ou existe alguma outra forma de contornar isso?
Alvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Estou migrando o sistema de modo texto para gráfico utilizando o o HwGui, porém ocorre o erro de "Redefinition of procedure or function:" que não ocorria quando compilado no modo texto com as opções /m /n ativadas, quando migrei do clipper para o Harbour coloquei em todos os PRGs "Function talFuncao_etc_etc", porém agora ele reclama. Tenho que retirar essa declaração de todos os prgs ?? ou existe alguma outra forma de contornar isso?
Alvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Microline Software
Porto Velho - RO
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Redefinition of procedure or function:
Verifique se não há 2 ou mais funções com o mesmo nome na tua aplicação ou em alguma LIB usada.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Redefinition of procedure or function:
Alvaro,
Não prescisa refazer os nomes das functions.
Não prescisa refazer os nomes das functions.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
alvaro.bernardi
- Usuário Nível 1

- Mensagens: 40
- Registrado em: 22 Nov 2008 11:02
- Localização: Porto Velho
Re: Redefinition of procedure or function:
Não existe outra função com mesmo nome...
está assim: (ex)
**********************************
* PROGRAMA : CAD_CID.PRG
* FINALIDADE : Cadastro de CIDADES
**********************************
#include "hwgui.ch"
#include "windows.ch"
#include "guilib.ch"
Function CAD_CID()
local INCLUI
....
....
....
O prg se chama CAD_CID e logo abaixo incluo a Function CAD_CID()
daí vem o erro...
está assim: (ex)
**********************************
* PROGRAMA : CAD_CID.PRG
* FINALIDADE : Cadastro de CIDADES
**********************************
#include "hwgui.ch"
#include "windows.ch"
#include "guilib.ch"
Function CAD_CID()
local INCLUI
....
....
....
O prg se chama CAD_CID e logo abaixo incluo a Function CAD_CID()
daí vem o erro...
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Microline Software
Porto Velho - RO
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Re: Redefinition of procedure or function:
Amiguinho
Em se tratando de Harbour o compilador pode entender tanto o nome do .PRG para chamadas de compilação como o nome da primeira função ou procedure do mesmo.
Voce possui uma função chamada X dentro de um X.PRG e no momento de compilar isto pode ser entendido como redefinição.
Portanto troque o nome desta função como MAIN() ja que é a primeira ou troque nomes de funções ou .PRGs.
Em se tratando de Harbour o compilador pode entender tanto o nome do .PRG para chamadas de compilação como o nome da primeira função ou procedure do mesmo.
Voce possui uma função chamada X dentro de um X.PRG e no momento de compilar isto pode ser entendido como redefinição.
Portanto troque o nome desta função como MAIN() ja que é a primeira ou troque nomes de funções ou .PRGs.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Re: Redefinition of procedure or function:
Em vez de Function CAD_CID(), coloque apenas Function CAD_CID(sem os parenteses) e veja o q acontece...O prg se chama CAD_CID e logo abaixo incluo a Function CAD_CID()
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Re: Redefinition of procedure or function:
Bom dia colegas.
Se for usado o HBMAKE certamente não são parênteses que estão ocasionando o erro. Não sei o que pode acontecer com outros makefiles. No início eu usei, por curto tempo, o BRmake, que se comportava de maneira diferente. E certamente isto pode acontecer com outros...
Em todos os meus sistemas uso os parênteses. O importante é que o módulo de partida tenha um determinado "nome.prg", mas seja definido como FUNCTION MAIN() ou PROCEDURE MAIN().
Os demais *.prg's devem ser definidos com um nome exclusivo, e em nenhum outro prg, inclusive no MAIN(), este nome pode ser usado novamente, nem mesmo em alguma LIB.
Se for usado o HBMAKE certamente não são parênteses que estão ocasionando o erro. Não sei o que pode acontecer com outros makefiles. No início eu usei, por curto tempo, o BRmake, que se comportava de maneira diferente. E certamente isto pode acontecer com outros...
Em todos os meus sistemas uso os parênteses. O importante é que o módulo de partida tenha um determinado "nome.prg", mas seja definido como FUNCTION MAIN() ou PROCEDURE MAIN().
Os demais *.prg's devem ser definidos com um nome exclusivo, e em nenhum outro prg, inclusive no MAIN(), este nome pode ser usado novamente, nem mesmo em alguma LIB.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Redefinition of procedure or function:
Exatamente, faça como o Hasse comentou aí em cima.
No programa principal, em vez de Function Cad_Cid, troque pra Function Main.
No programa principal, em vez de Function Cad_Cid, troque pra Function Main.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Redefinition of procedure or function:
Rochinha, por hábito trazido do Clipper, eu ainda mantenho os arquivos PRG identificados "pelo que eles contêm". Então, o Cadastro de Nomes está no arquivo CN.PRG e dentro dele a função principal é a FUNCTION CN. Do mesmo jeito, o Contas a Pagar está no arquivo MP.PRG e a função principal é a FUNCTION MP. E assim vai, no sistema inteiro.Em se tratando de Harbour o compilador pode entender tanto o nome do .PRG para chamadas de compilação como o nome da primeira função ou procedure do mesmo.
Aliás, esse arquivo CN.PRG contém também outras funções, não só a FUNCTION CN. Do mesmo jeito que os outros.
Então a sua afirmação, pelo menos pra mim, não confere. Uso o HBMAKE e o XH 1.0.0, e não tenho problema de redefinição de função ou procedure.
EM TEMPO: andei fazendo uns testes com isso, quando migrei do Clipper, e em 100% dos casos, os nomes das funções não tinham nada a ver com os nomes dos arquivos.
Re: Redefinition of procedure or function:
Uma pergunta: considerando que no XHarbour o que vale são as funções - a começar pela MAIN(), e não os arquivos PRG, meros repositórios, não deveriam os INCLUDES da função do Álvaro estar DENTRO de alguma FUNCTION, na pior das hipóteses DENTRO da function MAIN? No post dele, os INCLUDES estão fora. Será que não é isso que tá bagunçando o meio de campo?
Código: Selecionar todos
**********************************
* PROGRAMA : CAD_CID.PRG
* FINALIDADE : Cadastro de CIDADES
**********************************
Function CAD_CID()
local INCLUI
#include "hwgui.ch"
#include "windows.ch"
#include "guilib.ch"
Re: Redefinition of procedure or function:
A função da diretiva #include é incluir o conteúdo de um arquivo texto qualquer (normalmente é um header) no ponto onde esta diretiva foi informada, seja dentro ou fora de uma função. Isso só vai depender da conveniência do código. Normalmente é no topo do fonte, se o conteúdo for de uso comum a todo o código no fonte. Mas pode ser dentro de uma função ou a partir de um ponto do código em que o conteúdo deste arquivo externo faça sentido. Em suma: funciona exatamente como se fosse digitado.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
-
alvaro.bernardi
- Usuário Nível 1

- Mensagens: 40
- Registrado em: 22 Nov 2008 11:02
- Localização: Porto Velho
Re: Redefinition of procedure or function:
Já tenho uma função Main(), que é a função de entrada do programa, este seria um "sub-programa" uma função mesmo, ou procedure.
Na função Main() tenho a chamada para diversas sub-rotinas, como Fornecedores(), bancos(), Cadastros(), etc...
Nenhuma aceita que eu coloque function Nome_da_rotina() com o mesmo nome do prg.
Já tenho outros programas funcionando perfeitamente com esse padrão.
Na função Main() tenho a chamada para diversas sub-rotinas, como Fornecedores(), bancos(), Cadastros(), etc...
Nenhuma aceita que eu coloque function Nome_da_rotina() com o mesmo nome do prg.
Já tenho outros programas funcionando perfeitamente com esse padrão.
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Microline Software
Porto Velho - RO
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Redefinition of procedure or function:
Alvaro, vc esta usando o hbmake para compilar ? se sim poste por favor seu .BC !!!
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
-
alvaro.bernardi
- Usuário Nível 1

- Mensagens: 40
- Registrado em: 22 Nov 2008 11:02
- Localização: Porto Velho
Re: Redefinition of procedure or function:
Uso o xDev
Álvaro de Oliveira Bernardi
Microline Software
Porto Velho - RO
Microline Software
Porto Velho - RO
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Re: Redefinition of procedure or function:
Faça um teste usando o hbmake. se der certo pelo HBMAKE ai é uma configuração no xdev, não sei lhe dizer o que e como, pq não uso o xdev.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
