Orlando FMC Posted September 25, 2013 Report Share Posted September 25, 2013 Mestres, Tenho vários sistemas funcionando, com uma estrutura sempre parecida com a seguinte: Agenda.PRG // programa principal A.PRG // diversas Procedures / funções do programa específico B.PRG // diversas Procedures / funções do programa específico C.PRG // diversas Procedures / funções do programa específico D.PRG // diversas Procedures / funções do programa específico E.PRG // diversas Procedures / funções do programa específico ARQS.PRG // estruturas dos arquivos de dados (.dbf) C:\APLIC\FUNCOES_INI.PRG // diversas funções de inicialização comuns a todos os sistemas C:\APLIC\FUNCOES_ACE.PRG // diversas funções acessórias comuns a todos os sistemas DSAY.PRG No final do programa principal (no caso, AGENDA.PRG), coloco (todos os sistemas são assim): #INCLUDE "C:\APLIC\FUNCOES_INI.PRG" #INCLUDE "C:\APLIC\FUNCOES_ACE.PRG" #INCLUDE "DSAY.PRG" #INCLUDE "ARQS.PRG" #INCLUDE "A.PRG" #INCLUDE "B.PRG" #INCLUDE "C.PRG" #INCLUDE "D.PRG" #INCLUDE "E.PRG" procedure AppSys // XBase++ absurd requirement return De alguns dias para cá, não sei por que, para este programa (AGENDA), está dando problema na compilação: Error: Unresolved external ´_HB_FUN_DL_ANV´ referenced from C:\APLIC\AGENDA13\AGENDA.OBJ Error: Unresolved external ´_HB_FUN_FP´ referenced from C:\APLIC\AGENDA13\AGENDA.OBJ As duas funções (DL_ANV e FP) exitem e estão respectivamente no programas D.PRG e E.PRG. Se eu mudo a ordem dos #INCLUDE, como a seguir, #INCLUDE "C:\APLIC\FUNCOES_INI.PRG" #INCLUDE "C:\APLIC\FUNCOES_ACE.PRG" #INCLUDE "DSAY.PRG" #INCLUDE "ARQS.PRG" #INCLUDE "D.PRG" // <--- mudei de lugar #INCLUDE "A.PRG" #INCLUDE "B.PRG" #INCLUDE "E.PRG" // <--- mudei de lugar #INCLUDE "C.PRG" assim a compilação transcorre normalmente, no entanto, as funções que estão em C.PRG não funcionam. Isto está acontecendo só agora, e só neste sistema (AGENDA). Pergunta-se: 1 - Por que a ordem dos #INCLUDE altera a compilação? 2 - Por que as funções de C.PRG deixaram de funcionar? Quote Link to comment Share on other sites More sharing options...
Orlando FMC Posted September 26, 2013 Author Report Share Posted September 26, 2013 Depois de inúmeras tentativas, retirei a linha: #Include "DSay.Ch" no início de C.PRG, e resolveu tudo. Não sei a função desta linha aí. Quote Link to comment Share on other sites More sharing options...
joaosolution Posted September 26, 2013 Report Share Posted September 26, 2013 Orlando Bom dia Não sei o por que do problema ter resolvido, mas não trabalho com os PRG´s listados em include. Trabalho da mesma forma, um programa principal e os demais com as funções, mas não é necessário coloca-los como include no principal. Somente listo os programas na BAT de compilação, no meu caso utilizo o xDev. Normalmente utilizo Include para determinar o uso de alguma classe da FW, pois se a DSay.ch não estiver setada na FiveWin.ch e eu utilizar no sistema irá ocorrer erro. Mas para os demais sistemas não trabalho desta forma. Att João Bosco Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.