Inclusión archivos de cabecera

quim
Mensajes: 31
Registered for: 3 years 4 months
Andorra

Inclusión archivos de cabecera

Mensaje por quim »

No consigo que encuentre la ruta de esta forma (con V2)

Código: Seleccionar todo

// {% hb_SetEnv( "HB_INCLUDE", If( "Windows" $ OS(), "c:/", If( "Darwin" $ OS(), "/Users/user", "/home/user" ) ) + "/dev/hbweb/include;" )%}

#include "hbweb.ch"

En cambio si hago esto, sin problemas

Código: Seleccionar todo


#include "c:/dev/hbweb/include/hbweb.ch"

Qué hago mal ?

Saludos

ramirezosvaldo
Mensajes: 127
Registered for: 3 years 5 months
Mexico

Mensaje por ramirezosvaldo »

Que escupe un curdir() ?

? curdir()

para ver donde estas localizado


Saludos
Osvaldo Ramirez

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje por charly »

Quim,

Estas en windows ? Dinde tienes los include ?
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

quim
Mensajes: 31
Registered for: 3 years 4 months
Andorra

Mensaje por quim »

@ramirezosvaldo

curdir() devuelve --> Apache24

@Charly

Si, estoy en Windows
La ruta del include que pretendo enlazar es :
#include "c:/dev/hbweb/include/hbweb.ch"

que está seteada en la cabecera del prg así :
// {% hb_SetEnv( "HB_INCLUDE", If( "Windows" $ OS(), "c:/", If( "Darwin" $ OS(), "/Users/user", "/home/user" ) ) + "/dev/hbweb/include;" )%}

Saludos

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje por charly »

Quim

Prueba primero esto...

Código: Seleccionar todo

// {% hb_SetEnv( "HB_INCLUDE", "c:/dev/hbweb/include" )  %}
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

quim
Mensajes: 31
Registered for: 3 years 4 months
Andorra

Mensaje por quim »

El problema que veo es que en mi entorno no puedo recuperar la variable 'seteada'

// {% hb_SetEnv( "HB_INCLUDE", "ruta_lo_que_sea" ) %}

Luego aparece en blanco :

? AP_GETENV('HB_INCLUDE')

Saludos

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje por charly »

Cuidadu, cuidadu...

Una cosa es usar el hb_SetEnv/GetEnv() y otra el AP_SetEnv/GetEnv()


Prueba -> ? hb_getenv( 'HB_INCLUDE')

Piensa que el mopdulo de prepro se usa hb_getenv()

Código: Seleccionar todo

	oHrb = HB_CompileFromBuf( cCodePP, .T., "-n", "-q2", "-I" + cHBheader, ;
			"-I" + hb_GetEnv( "HB_INCLUDE" ), hb_GetEnv( "HB_USER_PRGFLAGS" ) )
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

quim
Mensajes: 31
Registered for: 3 years 4 months
Andorra

Mensaje por quim »

Gracias Charly, de acuerdo con lo que dices
con hb_setEnv asignas y con hb_getEnv obtienes :)

Sigue sin funcionar

Código: Seleccionar todo

// {% hb_SetEnv( "HB_INCLUDE", "c:/dev/hbweb/include" ) %}
Si no describo toda la ruta, no funciona

Código: Seleccionar todo

#include "c:/dev/hbweb/include/hbweb.ch"
Esto falla

Código: Seleccionar todo

#include "hbweb.ch"
Error System
Description	Value
Date	05/23/22 12:23:14
Description	Can't open #include file 'hbweb.ch'
System	PP/29
OS	Windows 8 6.2
mod Version	mod_harbour.V2.1 => 2.1.008
Rdds	DBF, DBFFPT, DBFBLOB, DBFNSX, DBFCDX, SIXCDX, DBFNTX, DELIM, SDF, FCOMMA
Ya dando vueltas ...
Puede ser cosa de 'permisos' ya que el script prg se ejecuta en c:/Apache24/htdocs/tmod
siendo tmod un enlace simbólico a c:\dev\hbweb ??

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje por charly »

Esta tarde le hecho un vistazo al tema e intento poner ejemplo

C.
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

Avatar de Usuario
charly
Mensajes: 145
Registered for: 3 years 6 months

Mensaje por charly »

Quim,

Pues no lo pillo. Si pongo un fichero por ejemplo dentro de una carpeta include en el mismo directorio, y hago p.e. esto

Código: Seleccionar todo

#include "{% hb_getenv( 'PRGPATH' ) + '/include/my.ch' %}"
Esto si funciona, pero no si seteo hb_include que mire en c:\temp y tengo alla el ch no lo encuentra

Código: Seleccionar todo

//	{% hb_setenv( 'HB_INCLUDE', 'c:\TEMP' ) %}		

#include "my.ch"
...
Seguire investigando, ha de ser una tonteria

C.
Salutacions, saludos, regards.
Charly

"...programar es fácil, hacer programas es difícil..."

https://httpd2.blogspot.com/
https://forum.modharbour.app

Responder