• Viernes 29 de Marzo de 2024, 09:18

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - memmaker650

Páginas: [1]
1
Inteligencia Artificial / Re: procesamiento de imagenes Opencv
« en: Viernes 5 de Febrero de 2010, 13:01 »
Cita de: "Gilmour"
estoy usando el compilador gcc 3.4.2.
como puedo cambiarlo por el gcc 4.4.1
Usas windows, Linux o MAC. En caso de Linux basta con actualziar el sistema y sino tienes instala el build-essential.

2
SQL Server / uso de variables y uso posterior en Case.
« en: Viernes 5 de Febrero de 2010, 12:59 »
Soy un novato por aquí y estoy haciendo unos ejemplos más o menos complejos. Se me ha ocurrido este código pero no se porque no funciona
, si alguien pudiera ayudarme se lo agradecería mucho.
Código: SQL
  1. SELECT @VAR=COUNT ( id_estud )FROM temp WHERE id_estud = 'MargBorr';
  2. INSERT INTO tempo(Obligatorias) VALUES CASE WHEN VAR='2' THEN ('OK!')
  3. ELSE  ('Pendiente') END
  4.  

3
C/C++ / Re: Algo como clrscr o system("cls") que me sirva para win y Lin
« en: Viernes 27 de Noviembre de 2009, 12:15 »
Cita de: "diego.martinez"
si es solo para eso, podrias usar un define

Código: C++
  1.  
  2. #ifdef WINDOWS
  3. [codigo win]
  4. #else
  5. [codigo lin]
  6. #endif
  7.  
  8.  

pero solo haz esto si es UNA UNICA instruccion la que cambia, siempre es mejor hacerlo bien multiplataforma.
Si no, mirate el patron FACTORY en google.
El código que comentas es muy interesante, pero no entiendo porque sólo se puede usar para una sola instrucción. Si por ejemplo quisieramos hacer pongamos un bucle de una manera para windows y de otra para linux porque en este último hay una isntrucción más optimizada como lo podría hacer.

Gracias por la solución y la referencia de código.

4
C/C++ / Re: Mecla código C y C++, y otras dudillas.
« en: Miércoles 7 de Octubre de 2009, 12:23 »
ok. Como de momento no lo voy a utilizar. Tomaré unas notas para que no se me olvide y probaré con otras aplicaciones más pequeñas.

5
C/C++ / Re: Mecla código C y C++, y otras dudillas.
« en: Lunes 5 de Octubre de 2009, 20:18 »
Eso es muchas gracias. No recordaba esa etiqueta.

Vale, esto segun leo es una combinación de arquitectura y sistema operativo, por lo que con esta directiva defino amabas cosas y se supone que haría que un mismo programa escrito en C++ funcionara en diferentes sistemas operativos y en ordenadores con distitnas arquitecturas.

Confirmame que no me equivoco.

Gracias por la contestación.

6
C/C++ / Re: Mecla código C y C++, y otras dudillas.
« en: Viernes 2 de Octubre de 2009, 17:54 »
Lo siento pero no termino de coger los conceptos o no los sé aplicar. No encuentro por ningún lado ningún ejemplo ni de makefile ni de ningun helloWorld program y como compilarlo para por ejemplo otra arquitectura como puede ser x86_64 o para otro S.O. como MAC OS X o Windows Xp.

Si alguien tiene algun ejemplillo o supiera las directivas que tengo que incluir en el siguiente makefile que uso para conseguir el cross-compiling
Código: Text
  1. CC=g++
  2. CFLAGS=-c -Wall -Werror
  3. LDFLAGS=-g -O3 -lpthread -wlpdstm -L /Users/jorgevegasanchez/Desktop/SwissTM/recompilacion/files-MacOS/LIBRERIAS-MAC/wlpdstm-MAC/lib/libwlpdstm.a
  4. SOURCES=thread-exV-OpenCL-barrier.c
  5. OBJECTS=$(SOURCES:.cpp=.o)
  6. EXECUTABLE=threadV-OpenCL-barrier
  7.  
  8. all: $(SOURCES) $(EXECUTABLE)
  9.    
  10. $(EXECUTABLE): $(OBJECTS)
  11.     $(CC) $(LDFLAGS) $(OBJECTS) -o $@
  12.  
  13. .cpp.o:
  14.     $(CC) $(CFLAGS) $< -o $@
  15.  
  16. .PHONY: clean
  17.     clean:
  18.     -rm *.o
  19.  

7
C/C++ / Re: Mecla código C y C++, y otras dudillas.
« en: Viernes 2 de Octubre de 2009, 10:16 »
Muchas gracias compañero. Buena información.

8
C/C++ / Re: Mecla código C y C++, y otras dudillas.
« en: Jueves 1 de Octubre de 2009, 10:35 »
No pasa nada su mensaje había llegado.

Y algo de ayuda sobre el cross-compiling ??

9
C/C++ / Re: Mecla código C y C++, y otras dudillas.
« en: Miércoles 30 de Septiembre de 2009, 19:57 »
Cita de: "m0skit0"
El código de C es totalmente válido en C++ (por algo se llama C++, es decir, una extensión de C), así que con compliarlo todo como si fuera C++ no debería haber ningún problema.

En cuanto a lo de cross-compiling, no tienes que tener tampoco ningún problema. Eso sí, la compilación para cada una de las plataformas debes hacerla por separado, no importa que estén todos en el mismo Makefile o en distintos Makefile (aunque te aconsejo lo segundo así lo tienes más ordenado).

Gracias. He estado buscando info sobre lo del cross-compiling, pero no he encontrado ningun ejemplo ni nada parecido. Si pudieras poner algún ejemplo de las directivas o enlace con documentación te lo agradecería mucho.

10
C/C++ / Mecla código C y C++, y otras dudillas.
« en: Miércoles 30 de Septiembre de 2009, 17:33 »
Buenas
Quiero  combinar C y C++ y ahora tengo dudas tanto en la creación como en la compilación.
Es decir en mi código defino en otro fichero un método o procedimiento en C al que invocaré desde otro programa que está escrito en C++. No hay posibilidad de cambiar el código de C a C++, es obligatorio que esté en C++. ¿¿Como lo compilo ?? ¿¿Primero el método usando gcc o lo compilo todo usando g++ ??' Tengo que seguir algún orden en especial ?? Es que todavía no me aclaro con lo de trabajar con varios ficheros. La llamada al método la hago normalmente o necesito hacer especial. ¿¿ Algo que deba tener en cuenta ??

Bueno, yo compilo usando makefiles. Tengo la duda de si esto se puede hacer. Una vez realizado pongamos un programa en C++, todo perfecto. Imaginemos que se requiere que funcione para diferentes architecturas. Por ejemplo para x86, x86_64 o PPC por poner un ejemplo. Podemos seleccionar en el makefile la arquitectura para la que queremos nuestro programa, y si es posible podríamos hacer compilaciones para las 3 tecnologías y que cada programa se guardará en una carpeta. Y hacer esto para distintos sistemas operativos, WIndows Xp, Linux y MAC OS X ????

Un saludo. Y gracias de antemano.

11
C/C++ / Re: SDL_image
« en: Miércoles 30 de Septiembre de 2009, 17:30 »
Haz lo que dice nuestro amigo. Bajatela de la direccion que te ha dado y compilatela para tu SO.
Como veo que estas trabajando con SDL te recomiendo otros modulos interesantes:
- SDL_TTF --> para fuente true type, las de Windows vamos.
- SDL_mixer --> para reproduccion de musica.

Te recomiendo que para compilar tus programitas uses un makefile porque es mas sencillo de modificar y apra distintos proyectos solo tienes que cambiar unas pocas cosas. Además para trabajar con SDL es interesante porque suele requerir algun flag mas en la compilación. LDFLAGS y CDFLAGS.

MIra la documentación oficial. Por lo menos para Mac si que lo necesita.

12
C/C++ / Re: Redirecconar salida estandar (STDOUT)
« en: Domingo 23 de Agosto de 2009, 13:46 »
Muchisimas gracias.

13
C/C++ / Redirecconar salida estandar (STDOUT)
« en: Sábado 22 de Agosto de 2009, 11:07 »
Buenas tengo un problemilla porque quiero redireccionar la salida estandar dentro de un programa y luego volverla a dejar como estaba originalmente. Sé que esto se puede hacer de forma externa al programa, con el operador <, pero necesito hacer una redirección dentro y otra fuera. El problema que tengo es que consigo hacer la redirección a un fichero sin problema, pero no consigo volverla a dejar como estaba originalmente.

Código que tengo, NO FUNCIONA.
Código: C++
  1. #include <fstream>
  2. #include <stdio.h>
  3. #include <iostream>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7.  
  8.    int main()
  9.  
  10.    {
  11.     FILE *valor;
  12.     FILE **valor2;
  13.    
  14.       cout << "This is going to the standard output stream" << endl;
  15.        
  16.       valor=&(*stdout);
  17.       valor=freopen("pia.txt", "w", stdout);
  18.  
  19.       cout << "This is going to michael.txt file" << endl;
  20.       cout << "Hola soy Jorge Vega" << endl;
  21.       stdout=*valor2;
  22.       cout << "Donde va esto" << endl;
  23.       return 0;
  24.  
  25.    }
  26.  

14
C/C++ / Problema analisis de código.
« en: Lunes 20 de Julio de 2009, 19:51 »
Código: C++
  1. #ifndef WLPDSTM_TLS_H_
  2. #define WLPDSTM_TLS_H_
  3.  
  4. namespace wlpdstm {
  5.  
  6.     ///////////////////////
  7.     // invoke init start //
  8.     ///////////////////////
  9.  
  10.     template<typename T, bool INIT = true>
  11.     struct GlobalInitInvoker {
  12.         static void GlobalInit() {
  13.             T::GlobalInit();
  14.         }
  15.     };
  16.  
  17.     template<typename T>
  18.     struct GlobalInitInvoker<T, false> {
  19.         static void GlobalInit() {
  20.             // do nothing
  21.         }
  22.     };
  23.  
  24.     template<typename T, bool INIT = true>
  25.     struct ThreadInitInvoker {
  26.         static void ThreadInit(T *obj) {
  27.             obj->ThreadInit();
  28.         }
  29.     };
  30.  
  31.     template<typename T>
  32.     struct ThreadInitInvoker<T, false> {
  33.         static void ThreadInit(T *obj) {
  34.             // do nothing
  35.         }
  36.     };
  37. }
  38.     /////////////////////
  39.     // invoke init end //
  40.     /////////////////////
  41.  
  42. #ifdef USE_PTHREAD_TLS
  43.  
  44. #include <pthread.h>
  45.  
  46. namespace wlpdstm {
  47.     /**
  48.      * This is a TLS class that will put one instance of templated
  49.      * class into TLS storage and provide access to it. Assumption here
  50.      * is that the TLS class exposes default constructor. If this is
  51.      * not the case this class should be slightly changed.
  52.      *
  53.      */
  54.     template<class T, bool GLOBAL_INIT, bool THREAD_INIT>
  55.     class Tls {
  56.         public:
  57.             static void GlobalInit();
  58.             static void ThreadInit();
  59.             static T *Get();
  60.  
  61.         private:
  62.             static ::pthread_key_t tlsKey;
  63.             static ::pthread_key_t initKey;
  64.     };
  65. }
  66.  
  67. template<class T, bool GLOBAL_INIT, bool THREAD_INIT> ::pthread_key_t wlpdstm::Tls<T, GLOBAL_INIT, THREAD_INIT>::tlsKey;
  68. template<class T, bool GLOBAL_INIT, bool THREAD_INIT> ::pthread_key_t wlpdstm::Tls<T, GLOBAL_INIT, THREAD_INIT>::initKey;
  69.  
  70. template<class T, bool GLOBAL_INIT, bool THREAD_INIT>
  71. inline void wlpdstm::Tls<T, GLOBAL_INIT, THREAD_INIT>::GlobalInit() {
  72.     ::pthread_key_create(&tlsKey, NULL);
  73.     GlobalInitInvoker<T, GLOBAL_INIT>::GlobalInit();
  74.  
  75.     // not locally initialized
  76.     ::pthread_key_create(&initKey, NULL);
  77.     ::pthread_setspecific(initKey, (const void *)false);
  78. }
  79.  
  80. template<class T, bool GLOBAL_INIT, bool THREAD_INIT>
  81. inline void wlpdstm::Tls<T, GLOBAL_INIT, THREAD_INIT>::ThreadInit() {
  82.     bool initialized = (bool)::pthread_getspecific(initKey);
  83.  
  84.     if(!initialized) {
  85.         T *obj = new T();
  86.         ::pthread_setspecific(tlsKey, (const void *)obj);
  87.         ThreadInitInvoker<T, THREAD_INIT>::ThreadInit(obj);
  88.         ::pthread_setspecific(initKey, (const void *)true);
  89.     }
  90. }
  91.  
  92. template<class T, bool GLOBAL_INIT, bool THREAD_INIT>
  93. inline T *wlpdstm::Tls<T, GLOBAL_INIT, THREAD_INIT>::Get() {
  94.     return (T *)::pthread_getspecific(tlsKey);
  95. }
  96.  
  97. #else
  98.  
  99. namespace wlpdstm {
  100.     template<class T, bool GLOBAL_INIT, bool THREAD_INIT>
  101.     class Tls {
  102.         public:
  103.             static void GlobalInit() {
  104.                 GlobalInitInvoker<T, GLOBAL_INIT>::GlobalInit();
  105.             }
  106.  
  107.             static void ThreadInit() {
  108.                 if(!init) {
  109.                     val = new T();
  110.                     ThreadInitInvoker<T, THREAD_INIT>::ThreadInit(val);
  111.                     init = true;
  112.                 }
  113.             }
  114.  
  115.             static T *Get() {
  116.                 return val;
  117.             }
  118.  
  119.         private:
  120.             static __thread T *val;
  121.             static __thread bool init;
  122.     };
  123. }
  124.  
  125. template<class T, bool GLOBAL_INIT, bool THREAD_INIT> __thread T* wlpdstm::Tls<T, GLOBAL_INIT, THREAD_INIT>::val;
  126. template<class T, bool GLOBAL_INIT, bool THREAD_INIT> __thread bool wlpdstm::Tls<T, GLOBAL_INIT, THREAD_INIT>::init;
  127.  
  128. #endif
  129.  
  130. #endif // WLPDSTM_TLS_H_
  131.  

Buenas y gracias de antemano a todo aquel que se lea un poco este código que he puesto.
TEngo dudas sobre las definición de los tipos de datos, creo que no comprendo bien los define, template y los structs, porque me parece ver redundancias por todos lados.

DUDAS:
1ª Linea 24. No comprendo este template. No se supone que un template es para crear una estructura facilemnte repetible, tipo plantilla o algo así. No entiendo que hace un template justo antes de una definición de este 'struct'.

2ª Lineas 62 y 63. Definición de variables privadas dentro de  una clase. Que significa '::' delante de la definición de las variables.

3º  Líneas 67 y 68. No comprendo estos 2 templates.

4º Lineas 92 a 95. EL template con el 'inline' seguido. SE supone que un inline es una función de tamaño muy pequeño y que definimos de esta manera para mayor limpieza. Pero en este inline no encuentro el nombre de la función, para después invocarlo. Aparte no entiendo el comando después del inline, no veo declaración de variables.

5ªLinea 42 --> #ifdef USE_PTHREAD_TLS --> ESto es una instrucción para el pre-compilador. Se supone que si la variable USE_PTHREAD_TLS='1' se compila lo que esta a continuación y sino no. Lo que no entiendo es que en este fichero no se da valor a esa variable. Si estamos compilando y se supone que las variables no tienen valor, algunas sí, como sabe el compilador que tiene que compilar.

Gracias de antemano.
Soy un poco novato ocn esto de c++.

15
C/C++ / Re: Ejecución paso a paso prog c++ con lib.
« en: Lunes 20 de Julio de 2009, 19:09 »
Cita de: "m0skit0"
Pues claro que sí, sólo haz un punto de interrupción sobre la función que tengas en la librería y luego dale a paso a paso.
Como hago un punto de interrupcion. Necesito ver toda la librería no solo una función.
NOTA: Uso eclipse o Xcode para modificar el código pero la compilación la hago desde linea de comandos para linkar todas las librerias.

16
C/C++ / Ejecución paso a paso prog c++ con lib.
« en: Sábado 11 de Julio de 2009, 14:00 »
Buenas

Soy un tanto novato en C++.
El problema que tengo es que no sé si esto se puede hacer. A ver tengo una librería creada por mi, que llamaremos x. Y luego aparte tengo varios pequeños programas donde uso la librería x. Lo que quiero hacer es saber si puedo ejecutar paso a paso estos programas y ver tambien paso a paso lo que realiza en la libreria. Es decir ejecución paso a paso tanto de la librería como de los programas.
Creo que esto lo debería poder hacer con el debugger pero no estoy seguro.

17
C/C++ / Re: Problema al compilar en linea de comandos.
« en: Miércoles 8 de Abril de 2009, 15:16 »
Gracias, ahora ya me funciona. Aunque el programa me da un error de buffer, pero eso ya es otra cosa.

18
C/C++ / Problema al compilar en linea de comandos.
« en: Miércoles 8 de Abril de 2009, 14:35 »
Tengo que utilizar una librería externa, que ya está compilada y tengo en la carpeta include el fichero de cabecera ( 'stm.h' ) y en la carpeta lib el fichero de librería 'libwlpdstm.a'. Utilizo hilos en mi programa y por lo tanto tambien tengo que adjuntar la librería pthread.
Mi duda surge aquí, genero mi makefile para no tener que estar siempre escribiendo todo el comando para compilar.

g++ -lpthread -wlpdstm -L /Users/jorgevegasanchez/Documents/CPS/EPFL0809/Project_STM-EPFL/Code/wlpdstm_20081119/lib/ thread-exV1.c -o threadV1

ld: in /Users/jorgevegasanchez/Documents/CPS/EPFL0809/Project_STM-EPFL/Code/wlpdstm_20081119/lib/, can't map file, errno=22
collect2: ld returned 1 exit status
make: *** [threadV1] Error 1

No entiendo que significa este error y porque parece que no puede mapear el fichero. Si alguien pudiera ayudar.

Páginas: [1]