|
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
« 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
« en: Jueves 28 de Diciembre de 2006, 17:45 »
428
« 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: 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: 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: void showError() { TCHAR szBuf[80]; LPVOID lpMsgBuf; DWORD dw = GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); wsprintf( szBuf, L"Error %d: %s", dw, lpMsgBuf ); MessageBox(NULL, szBuf, L"Error", MB_OK); }
Gracias de antemano  .
429
« 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. 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.
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.htmlhttp://news.zdnet.com/2100-1009_22-5844520.htmlSaludos, JJ (Geo).
430
« 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.phpSaludos, JJ (Geo).
431
« en: Martes 26 de Diciembre de 2006, 18:34 »
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
« en: Domingo 24 de Diciembre de 2006, 23:59 »
¡Pero si Santa no existe! Los Reyes Magos  , ¡esos si que existen! (Y ya merito vienen, así que  ) JJ (Geo).
433
« 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
« en: Domingo 24 de Diciembre de 2006, 23:49 »
Creo que no sólo nos confundiste, sino que tú también estás confundido  . Esto no es una variable global: 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
« en: Domingo 24 de Diciembre de 2006, 17:07 »
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;). 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] class Citas { public: Citas(); };
[citas.cpp] #include "citas.h" #include "globales.h" Citas::Citas() { M = 100; }
[globales.h] [globales.cpp] #include "globales.h" int M = 1;
[main.cpp] #include "globales.h" #include "citas.h" #include <iostream> using std::cout; using std::endl; int main() { cout << "Valor de M antes de crear el objeto: " << M << endl; Citas misCitas; cout << "Valor de M después de crear el objeto: " << M << endl; return 0; }
[Makefile] prueba: main.o citas.o globales.o g++ -o prueba main.o citas.o globales.o main.o: main.cpp g++ -o main.o -c main.cpp citas.o: citas.cpp g++ -o citas.o -c citas.cpp globales.o: globales.cpp g++ -o globales.o -c globales.cpp
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... 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
« en: Sábado 23 de Diciembre de 2006, 16:32 »
Para variables globales usa extern, prueba así: citas.h class Citas { public: Citas(); private: }; extern int M;
citas.cpp #include "citas.h" // Declara e inicializa variable global. int M = 1; Citas::Citas() { M = 10; }
prueba.cpp #include "citas.h" int main() { cout << "Valor de M antes de crear el objeto: " << M << endl; Citas misCitas; cout << "Valor de M después de crear el objeto: " << M << endl; system( "pause" ); return 0; }
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?? Saludos, JJ (Geo).
437
« 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
« 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: for ( i = 0; i < 5; i++ ) { printf( "%d", mac[ i ] ); if ( i < 5 ) printf( "." ); }
Si quieres pasar todo a una cadena de texto, usa sprintf: sprintf( cadena, "%d.%d.%d.%d.%d.%d", mac[ 0 ], mac[ 1 ], mac[ 2 ], mac[ 3 ], mac[ 4 ], mac[ 5 ] ); printf( "Cadena: %s\n", cadena );
Suerte, JJ (Geo).
439
« en: Martes 19 de Diciembre de 2006, 22:42 »
¿Cuál es la duda? ¿Qué compilador usas?
440
« 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  . 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
« 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í: >> matriz = [ 5 4 3 2 1 0 ] matriz = 5 4 3 2 1 0 >> nueva = matriz( 1 : length( matriz ) - 1 ) nueva = 5 4 3 2 1 >>
Suerte, JJ (Geo).
442
« 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
« 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=systemSuerte, JJ (Geo).
444
« 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
« en: Martes 5 de Diciembre de 2006, 05:34 »
Ya ni me acuerdo cómo es ese juego, ¿alguien que me lo describa  ? Saludos, JJ (Geo).
446
« 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
« 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  . Saludos, JJ (Geo).
448
« 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: int* ptrMatriz; ptrMatriz = new int( num_filas * num_columnas ); // o con malloc: // ptrMatriz = malloc( sizeof( int ) * numfilas * num_columnas ); posicion = ptrMatriz[ tamanio_filas * fila + columna ];
Suerte, JJ (Geo).
449
« 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
« en: Sábado 2 de Diciembre de 2006, 15:57 »
El nombre del ejecutable lo puedes obtener de la línea de comandos: int main( int argc, char* argv[] ) { for ( int i = 0; i < argc; i++ ) { cout << argv[ i ] << endl; } return 0; }
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
|
|
|