• Martes 13 de Mayo de 2025, 05:04

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 - Geo

Páginas: 1 ... 16 17 [18] 19 20 ... 41
426
C/C++ / Re: Ayuda: ¿que Necesita Principiente En C?
« en: Sábado 6 de Enero de 2007, 15:02 »
Para un autodidacta un libro es casi indispensable. Eso y los tutoriales que puedas encontrar en internet (checa el FAQ del foro). Y para las dudas aquí está Eternal Idol ;), bueno, aquí está este foro.

Saludos,
JJ (Geo).

427
Visual C++ / Re: Problema Con El Registro
« en: Jueves 28 de Diciembre de 2006, 17:45 »
Cita de: "Eternal Idol"
Jeje, Control Panel, con espacio  :P
¡Aaaargh! :brickwall:  :argh:

:gracias:
JJ (Geo).

428
Visual C++ / Problema Con El Registro
« en: Jueves 28 de Diciembre de 2006, 06:19 »
Qué tal, tengo problemas para poder actualizar una clave del registro de Windows. Este es mi código:

Citar
TCHAR buffer[ MAX_PATH ];
wsprintf( buffer, L"ControlPanel\\Desktop" );

HKEY hKey;
LONG open;

open = RegOpenKeyEx(
   HKEY_CURRENT_USER, buffer,
   0, KEY_WRITE, &hKey
);

if ( open != ERROR_SUCCESS ) {
   showError();
   //return false;
}

RegSetValueEx( hKey, L"WallpaperStyle", 0, REG_SZ, (LPBYTE)"0", lstrlen( L"0" ) + 1 );
RegSetValueEx( hKey, L"TileWallpaper", 0, REG_SZ, (LPBYTE)"0", lstrlen( L"0" ) + 1 );
Pero no logro que las claves se actualicen, siempre conservan su valor. El único detalle que he encontrado es que en la variable open me aparece un valor de error que con la función showError() me muestra Error 183: No se puede crear un archivo que ya existe.. Lo que no entiendo es porqué indica eso si se supone que la función RegOpenKeyEx no crea la clave sino simplemente la abre:
Citar
Remarks
Unlike the RegCreateKeyEx function, the RegOpenKeyEx function does not create the specified key if the key does not exist in the registry.

La función showError:
Código: Text
  1.  
  2. void showError() {
  3.     TCHAR szBuf[80];
  4.     LPVOID lpMsgBuf;
  5.     DWORD dw = GetLastError();
  6.  
  7.     FormatMessage(
  8.         FORMAT_MESSAGE_ALLOCATE_BUFFER |
  9.         FORMAT_MESSAGE_FROM_SYSTEM,
  10.         NULL,
  11.         dw,
  12.         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
  13.         (LPTSTR) &lpMsgBuf,
  14.         0, NULL
  15.   );
  16.  
  17.     wsprintf(
  18.     szBuf,
  19.         L"Error %d: %s",
  20.         dw, lpMsgBuf
  21.   );
  22.  
  23.     MessageBox(NULL, szBuf, L"Error", MB_OK);
  24. }
  25.  
  26.  
Gracias de antemano :).

429
Windows / Re: Campaña Contra Windows Vista
« en: Jueves 28 de Diciembre de 2006, 05:53 »
La campaña "BadVista" no trata de la libertad de elegir tal o cual sistema operativo, el principal punto de discusión es la nueva tecnología que MS introduce con este sistema, sobretodo la de "Trusted Computing", la cual, a falta de leer información más precisa, me intriga un poco.

Citar
La campaña se concentrará en la denominada Trusted Computing (computación confiable), que según FSF es más bien Treacherous Computing (computación traicionera). En principio, la tecnología de Trusted Computing apunta a proteger contenidos como música y películas contra la piratería. Según FSF, esta tecnología también hace que el usuario pierda el control sobre su propia máquina.

Citar
Microsoft had previously designed Vista to simply warn users if their drivers were "unsigned" -- that is, not approved by Microsoft -- but in a new announcement, the company pledged to make it impossible to load any unapproved drivers under Vista.
http://www.boingboing.net/2006/01/26/msft_...ens_the_tr.html
http://news.zdnet.com/2100-1009_22-5844520.html

Saludos,
JJ (Geo).

430
C/C++ / Re: Gràficos!
« en: Miércoles 27 de Diciembre de 2006, 19:06 »
Ya te pregunté antes: ¿Qué compilador usas? ¿Compila código para Windows o para DOS?

El preguntar cómo se hacen gráficos es demasiado vago porque hay muchas formas posibles de dibujar algo en pantalla. En Windows puedes usar la API Win32 y GDI, o alguna librería gráfica más especializada como Direct3D (dentro de DirectX) u OpenGL. Inclusive Allegro o SDL.

En conclase hay un tutorial de gráficos y usan la API de Windows para los ejemplos:
http://graficos.conclase.net/curso/index.php

Saludos,
JJ (Geo).

431
C/C++ / Re: Creacion De Ventanas
« en: Martes 26 de Diciembre de 2006, 18:34 »
Cita de: "l2ebelde"
Me refiero a la creacion de ventanas en el turbo c++
¿Qué compilador usas? ¿Compila código para Windows o para DOS?

Saludos,
JJ (Geo).

432
La taberna del BIT / Re: ¿existe Santa Claus?
« en: Domingo 24 de Diciembre de 2006, 23:59 »
¡Pero si Santa no existe!

Los Reyes Magos :king:  :sorcerer:  :birthday:, ¡esos si que existen! (Y ya merito vienen, así que :angel:)

JJ (Geo).

433
La taberna del BIT / ¡feliz Navidad!
« en: Domingo 24 de Diciembre de 2006, 23:54 »
Un saludo a todos los visitantes/miembros/colaboradores del foro, sobretodo a los que ahorita encontré conectados: JuanK (amigo, te aseguro que voy a hacer lo del reto de animaciones, pero los profesores no aflojan la soga todavía, nisiquiera en vacaciones :(), su-, Enko y Eternal Idol :).

¡FELICIDADES! Espero nos sigamos viendo por aquí durante el próximo año :).

JJ (Geo).

434
C/C++ / Re: Variable Global
« en: Domingo 24 de Diciembre de 2006, 23:49 »
Creo que no sólo nos confundiste, sino que tú también estás confundido :P.

Esto no es una variable global:
Código: Text
  1.  
  2. Citas b;
  3. b.M = 101;
  4.  
  5.  

Eso es una variable miembro de la clase b, cuyo identificador/nombre/alias es M. Creo que buscas hacer lo que comentó Eternal, aunque con la variable global como te la he mostrado no creo que tuvieras problemas.

Lo que me imagino que estás haciendo es declarar lo que te comenté (extern int M) pero dentro de la declaración de la clase (eso me imagino por el mensaje de error), allí no puedes usar extern. ¿No has probado con el código que he puesto (los 5 archivos)?

Saludos,
JJ (Geo).

435
C/C++ / Re: Variable Global
« en: Domingo 24 de Diciembre de 2006, 17:07 »
Cita de: "JaMFRY"
He probado las 2 maneras que me haveis comentado, pero la del "extern int M", cuando lo pongo en el .hpp el g++ del linux no le mola y me da un error del comando extern.
¿Qué error te da? Yo lo he compilado perfectamente con gcc 4.1.2 en Ubuntu Edgy.

Lo que te respondí no fueron "dos maneras" sino una sola. La variable global está en el .h, todos los archivos desde los que necesites acceder a la variable global M deberán incluir el archivo citas.h, yo prefiero colocar todas las globales en un archivo globales.h. Además, en cada archivo .cpp también debes incluir una declaración (int M;), pero sólo en uno de ellos inicializarla (int M = ALGO;).

Cita de: "JaMFRY"
La otra opcion que me haveis dado de poner "int M" solo en el .cpp no me sirve, ya que mas adelante creo un objeto de la clase citas, y necesito llamar a M, y como no la tengo declarada en el .hpp me da error, resumiendo que por fuerza tengo que declarar "int M" en el .hpp, ya que si hiciera lo siguente:

citas b;

b.M= 5; <--- "me dice logicamente que no hay una variable M de la clase citas".

Alguna otra sugerencia, porfavor, es que estoy encallado ahy, y una vez tenga eso ya me ira bien el resto de la clase.Merci.
Por supuesto que tendrás un error, M es una variable global, no una variable miembro de la clase Citas.

Probemos de nuevo, son muchos archivos pero espero entiendas la idea:

[citas.h]
Código: Text
  1.  
  2. class Citas {
  3. public:
  4.   Citas();
  5. };
  6.  
  7.  

[citas.cpp]
Código: Text
  1.  
  2. #include &#34;citas.h&#34;
  3. #include &#34;globales.h&#34;
  4.  
  5. Citas::Citas() {
  6.   M = 100;
  7. }
  8.  
  9.  

[globales.h]
Código: Text
  1.  
  2. extern int M;
  3.  
  4.  

[globales.cpp]
Código: Text
  1.  
  2. #include &#34;globales.h&#34;
  3.  
  4. int M = 1;
  5.  
  6.  

[main.cpp]
Código: Text
  1.  
  2. #include &#34;globales.h&#34;
  3. #include &#34;citas.h&#34;
  4. #include &#60;iostream&#62;
  5. using std::cout;
  6. using std::endl;
  7.  
  8. int main() {
  9.   cout &#60;&#60; &#34;Valor de M antes de crear el objeto: &#34; &#60;&#60; M &#60;&#60; endl;
  10.   Citas misCitas;
  11.   cout &#60;&#60; &#34;Valor de M después de crear el objeto: &#34; &#60;&#60; M &#60;&#60; endl;
  12.  
  13.   return 0;
  14. }
  15.  
  16.  

[Makefile]
Código: Text
  1.  
  2. prueba: main.o citas.o globales.o
  3.   g++ -o prueba main.o citas.o globales.o
  4.  
  5. main.o: main.cpp
  6.   g++ -o main.o -c main.cpp
  7.  
  8. citas.o: citas.cpp
  9.   g++ -o citas.o -c citas.cpp
  10.  
  11. globales.o: globales.cpp
  12.   g++ -o globales.o -c globales.cpp
  13.  
  14.  

Claro, faltan detalles como la protección contra múltiples include...
Con esos archivos, haz pruebas, por ejemplo, borra la definición int M = 1 de globales.cpp, o quítale la inicialización, agrega una declaración int M; antes de la función main en main.cpp...

Cita de: "Eternal Idol"
Que tal si la declaras dentro de la clase pero como static ... ¿Eso es lo que estas tratando de hacer? ¿Una variable de la clase? De esta manera solo una copia es mantenida ...

Je, después de todo el "rollo" que escribí veo esto y ya me surgió la duda, ¿qué es lo que quieres concretamente?

Suerte,
JJ (Geo).

436
C/C++ / Re: Variable Global
« en: Sábado 23 de Diciembre de 2006, 16:32 »
Para variables globales usa extern, prueba así:

citas.h
Código: Text
  1.  
  2. class Citas {
  3. public:
  4.   Citas();
  5. private:
  6. };
  7.  
  8. extern int M;
  9.  
  10.  

citas.cpp
Código: Text
  1.  
  2. #include &#34;citas.h&#34;
  3.  
  4. // Declara e inicializa variable global.
  5. int M = 1;
  6.  
  7. Citas::Citas() {
  8.   M = 10;
  9. }
  10.  

prueba.cpp
Código: Text
  1.  
  2. #include &#34;citas.h&#34;
  3.  
  4. int main() {
  5.   cout &#60;&#60; &#34;Valor de M antes de crear el objeto: &#34; &#60;&#60; M &#60;&#60; endl;
  6.  
  7.   Citas misCitas;
  8.  
  9.   cout &#60;&#60; &#34;Valor de M después de crear el objeto: &#34; &#60;&#60; M &#60;&#60; endl;
  10.  
  11.   system( &#34;pause&#34; );
  12.   return 0;
  13. }
  14.  
  15.  

Cita de: "bleglaiger"
Citar
JaMFRY
que te parece si delcaras tu variable gloval M solo en la clase citas y no el el codigo de php, osea quitale del codigo de php siq ueires que el valor no se peurda peus ii te das cuenta en el oro codigo tu variable M no tien ningun valor asiq ue pro defecto te loe sta toamndo por M=0;
bueno creoq eue se es tu problema si no lo es que aml toy proque no lo ude ahcer pero epseroq uet e sirva jeje
************THE KING IS COMING**********
¿¿Qué dijo??  :blink:

Saludos,
JJ (Geo).

437
C/C++ / Re: Ahora Tengo Dudas Con Una Lista Enlazada
« en: Jueves 21 de Diciembre de 2006, 20:26 »
No es posible inicializar elementos dentro de una clase al declararlos. Por lo tanto no es posible declarar constantes dentro de una clase.

Saludos,
JJ (Geo).

438
C/C++ / Re: Cast De Byte A Char
« en: Martes 19 de Diciembre de 2006, 22:55 »
Primero, un array de char tiene un caracter en cada uno de sus elementos, por lo tanto, no puedes pasar, por ejemplo, el número 26 de una posición de array de bytes a otra en el array de char, puesto que si la vas a convertir en texto deberías utilizar dos posiciones, una para el 2 y otra para el 6.

Si sólo te interesa mostrar la dirección, puedes hacer simplemente:
Código: Text
  1.  
  2. for ( i = 0; i &#60; 5; i++ ) {
  3.   printf( &#34;%d&#34;, mac[ i ] );
  4.   if ( i &#60; 5 ) printf( &#34;.&#34; );
  5. }
  6.  
  7.  

Si quieres pasar todo a una cadena de texto, usa sprintf:
Código: Text
  1.  
  2. sprintf( cadena, &#34;%d.%d.%d.%d.%d.%d&#34;,
  3.     mac[ 0 ], mac[ 1 ], mac[ 2 ],
  4.     mac[ 3 ], mac[ 4 ], mac[ 5 ] );
  5.  
  6.   printf( &#34;Cadena: %s&#092;n&#34;, cadena );
  7.  
  8.  

Suerte,
JJ (Geo).

439
C/C++ / Re: Matriz Inversa
« en: Martes 19 de Diciembre de 2006, 22:42 »
¿Cuál es la duda? ¿Qué compilador usas?

440
Matlab / Re: Ayuda
« en: Lunes 18 de Diciembre de 2006, 01:40 »
Je, el problema es que yo no he utilizado para nada las funciones de manejo de imágenes :P.

El problema está en uno de los parámetros que le estás pasando a imshow, aunque lamentablamente desconozco su uso y no puedo ser de más ayuda :(.

441
Matlab / Re: Ayuda
« en: Domingo 17 de Diciembre de 2006, 20:27 »
No entendí muy bien qué es lo que quieres quitar :). Para crear un nuevo vector con un elemento menos que otro, puedes hacerlo así:

Código: Text
  1.  
  2. &#62;&#62; matriz = [ 5 4 3 2 1 0 ]
  3.  
  4. matriz =
  5.  
  6.      5     4     3     2     1     0
  7.  
  8. &#62;&#62; nueva = matriz( 1 : length( matriz ) - 1 )
  9.  
  10. nueva =
  11.  
  12.      5     4     3     2     1
  13.  
  14. &#62;&#62;
  15.  
  16.  

Suerte,
JJ (Geo).

442
Microcontroladores / Re: Bus Comun En Vhdl
« en: Miércoles 6 de Diciembre de 2006, 15:44 »
Mh, ¿el mensaje de error tiene algún código de referencia que puedas buscar?
¿Has probado conectando con alguna señal auxiliar?

443
C/C++ / Re: Simulador Del Ms-dos
« en: Miércoles 6 de Diciembre de 2006, 15:38 »
En la parte superior del foro hay un mensaje que dice FAQ de C/C++, dentro un montón de enlaces con un montón de información.

También está Google. Esas son mis recomendaciones.

Bueno, y esta también:
http://c.conclase.net/librerias/funcion.php?fun=system

Suerte,
JJ (Geo).

444
Microcontroladores / Re: Bus Comun En Vhdl
« en: Martes 5 de Diciembre de 2006, 23:27 »
Ni idea, lo único que se me ocurre es que no sean del mismo tamaño la salida y los buses que le estás tratando de conectar.

445
C/C++ / Re: Master Mind
« en: Martes 5 de Diciembre de 2006, 05:34 »
Ya ni me acuerdo cómo es ese juego, ¿alguien que me lo describa :P?

Saludos,
JJ (Geo).

446
C/C++ / Re: Simulador Del Ms-dos
« en: Martes 5 de Diciembre de 2006, 05:33 »
Mmh, no sé, será muy simple pero me parece que lo único que tienes que hacer es leer una cadena, compararla con las instrucciones que esperas, si encuentras la cadena en la lista de instrucciones ejecutas la operación en cuestión, si no está en la lista muestras un mensaje de error y ya.

Y para ejecutar las instrucciones, lo más sencillo es simplemente usar la función system y pasarle al sistema lo que quieres ejecutar, claro, si te lo permiten (si es así, no debieras tener ninguna complicación en hacer el programa).

Suerte,
JJ (Geo).

447
C/C++ / Re: Error ¡¡¡
« en: Domingo 3 de Diciembre de 2006, 20:58 »
Además del mensaje de error el compilador indica la línea en que ha ocurrido el mismo, siempre chécalo :P.

Saludos,
JJ (Geo).

448
C/C++ / Re: Matriz Dinamica
« en: Domingo 3 de Diciembre de 2006, 20:53 »
Para manejar matrices dinámicas puedes hacerlo de dos formas: mediante un puntero de doble subídince:

int **ptrMatriz;

o con un sólo vector e indexando de la siguiente forma:

Código: Text
  1.  
  2. int* ptrMatriz;
  3.  
  4. ptrMatriz = new int( num_filas * num_columnas );
  5. // o con malloc:
  6. // ptrMatriz = malloc( sizeof( int ) * numfilas * num_columnas );
  7.  
  8. posicion = ptrMatriz[ tamanio_filas * fila + columna ];
  9.  
  10.  

Suerte,
JJ (Geo).

449
C/C++ / Re: Creo Que Pueden Ayudarme ¡¡¡
« en: Domingo 3 de Diciembre de 2006, 20:48 »
Primero checa cómo inicializar el modo gráfico con ese compilador. Luego cómo dibujar un punto, si no tienes funciones para dibujar líneas simplemente usa la ecuación de una recta y dibuja muchos puntos para dibujar la línea.

Suerte,
JJ (Geo).

450
C/C++ / Re: Ejecutable Que Se Copie Asi Mismo
« en: Sábado 2 de Diciembre de 2006, 15:57 »
El nombre del ejecutable lo puedes obtener de la línea de comandos:

Código: Text
  1.  
  2. int main( int argc, char* argv[] ) {
  3.   for ( int i = 0; i &#60; argc; i++ ) {
  4.     cout &#60;&#60; argv[ i ] &#60;&#60; endl;
  5.   }
  6.  
  7.   return 0;
  8. }
  9.  
  10.  

En argv[ 0 ] siempre tienes la ruta completa del ejecutable, si sólo quieres el nombre del ejecutable recorrerías hacia atrás hasta encontrar el primer indicador de directorio/carpeta (\ en Windows, / en otros como Linux/Unix).

Si trabajas en Windows, la función GetCommandLine te devuelve la línea de comandos y de allí podrías extraer el nombre del ejecutable, aunque creo que debe existir una función en la API de Windows que ya haga lo que quieres :).

Saludos,
JJ (Geo).

Páginas: 1 ... 16 17 [18] 19 20 ... 41