#include dentro de um #ifdef

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

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

#include dentro de um #ifdef

Mensagem por asimoes »

Pessoal,

Tem como incluir um #include dentro de um #ifdef ?

Ex.: hbmk2 teste -dteste

#ifdef teste
#include "teste.ch"
#else
#include "teste2.ch"
#endif
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

#include dentro de um #ifdef

Mensagem por Jairo Maia »

Olá Alexandre,

Sim. Normal. Que problema você está tendo?
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

#include dentro de um #ifdef

Mensagem por asimoes »

Olá Jairo,

Não está funcionando.

Veja o código:

Código: Selecionar todos

FUNCTION MAIN
Local cToken:="D"

#if defined( prod )
   #include "token.ch"         
#endif
   
#if defined( homolog )
   #include "token.ch"  
#endif
Alert(cToken)
RETURN Nil
No arquivo token.ch

Código: Selecionar todos

#ifdef prod
   #define cToken "P"
#endif
#ifdef homolog
   #define cToken "H"
#endif
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

#include dentro de um #ifdef

Mensagem por asimoes »

Jairo,

Está funcionando, eu não sei o que foi, o include que eu estava testando era datas.ch alterei o nome para token.ch e funcionou, não entendi.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

#include dentro de um #ifdef

Mensagem por Jairo Maia »

Mas você precisa definir a sessão que deseja para o #ifdef. Altere o exemplo assim que vai funcionar:

Código: Selecionar todos

FUNCTION MAIN
Local cToken:="D"

#define prod                // se for producao
//#define homolog       // comente prod e descomente homolog se for homologacao

#if defined( prod )
   #include "token.ch"         
#endif
   
#if defined( homolog )
   #include "token.ch"  
#endif
Alert(cToken)
RETURN Nil
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

#include dentro de um #ifdef

Mensagem por Jairo Maia »

Legal Alexandre, tenha uma boa noite. Até amanhã...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

#include dentro de um #ifdef

Mensagem por JoséQuintas »

Talvez porque no que postou estava errado

Código: Selecionar todos

#if defined( prod )
Só comentário:

prod confunde com produto.
Talvez seja mais interessante, já que não faz diferença pro compilador, usar algo assim:

#define AMBIENTE_PRODUCAO
#define AMBIENTE_HOMOLOGACAO

E talvez até mover essa parte para o token.ch, pra não precisar #ifdef nos fontes
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder