Nombre de archivo y Número de Línea

13/07/2004 - 00:32 por Willser F. González C. | Informe spam
Hola Grupo,

Tengo una función Funcion1() en un archivo Archivo1.cpp y otra función
Funcion2() en un archivo Archivo2.cpp, desde la Funcion1() llamo
correctamente a la Funcion2().

Ahora, Funcion2() debe mostrarme un mensaje con el nombre del archivo (en
este caso Archivo1.cpp) y el número de la línea (n) desde donde se llamó a
Funcion2(). Hay dos macros __FILE__ y __LINE__, pero para que funcione
correctamente, esto implica que se deben pasar estas macros como parámetros
de Funcion2(...).

Mi pregunta es si existe otra alternativa para saber estos dos valores sin
necesidad de pasarlos como parámetros, ya que necesito que Funcion2(...)
reciba, además, una cantidad de parámetros por defecto y otra cantidad de
parámetros opcionales, algo así como:

Funcion2(LPCTSTR i_lpszFrmto, ...)

y la idea es evitar estar enviando __FILE__ y __LINE__ como parámetros cada
vez que necesite llamar a Funcion2() (Son muchas las llamadas a esta
función).

Gracias,

Willser F.
willser@latinmail.com
 

Leer las respuestas

#1 pablo crosio
13/07/2004 - 06:11 | Informe spam
hola!

una idea que se me ocurre (hay otras formas) es que
utilices una macro; el tema es que como tenes argumentos
variables se complica un poco la cosa.
tal vez con 2 variables globales, una para el archivo y
otra para el numero de linea.
deberias armar una macro que cambiara tu Funcion2 por 2
asignaciones a variables globales y luego invoque a por
ejemplo F2 (F2 sera el nombre de tu funcion real)


en archivo1 podrias poner (donde llamas a Funcion2):

#define Funcion2 g_f = __FILE__; g_l = __LINE__; F2

char* g_f;
int g_l;

en archivo2:

declarar como extern las variables globales para poder
utilizarlas dentro de Funcion2, esas variables van a tener
el archivo y la linea

Cambiar el nombre de Funcion2 a F2 (las llamadas no,
siempre vas a llamar a la macro Funcion2)

salu2!!

pablo

Hola Grupo,

Tengo una función Funcion1() en un archivo Archivo1.cpp y


otra función
Funcion2() en un archivo Archivo2.cpp, desde la Funcion1


() llamo
correctamente a la Funcion2().

Ahora, Funcion2() debe mostrarme un mensaje con el nombre


del archivo (en
este caso Archivo1.cpp) y el número de la línea (n) desde


donde se llamó a
Funcion2(). Hay dos macros __FILE__ y __LINE__, pero


para que funcione
correctamente, esto implica que se deben pasar estas


macros como parámetros
de Funcion2(...).

Mi pregunta es si existe otra alternativa para saber


estos dos valores sin
necesidad de pasarlos como parámetros, ya que necesito


que Funcion2(...)
reciba, además, una cantidad de parámetros por defecto y


otra cantidad de
parámetros opcionales, algo así como:

Funcion2(LPCTSTR i_lpszFrmto, ...)

y la idea es evitar estar enviando __FILE__ y __LINE__


como parámetros cada
vez que necesite llamar a Funcion2() (Son muchas las


llamadas a esta
función).

Gracias,

Willser F.



.

Preguntas similares