Ver por etiquetas

Win/MAC: arranque dual y jodimiento de particiones
Published 19/11/2011 13:14 | Rafael Ontivero
Os lo juro. Estoy hasta los putísimos cojones de Windows, de MAC y de la madre que los parió a todos. El primero por pensarse que todo le pertenece, incluyendo las particiones HFS+, y el segundo por pensar que todos los usuarios son tontos del culo. No tengo muchas ganas de escribir, así que voy a ser bastante escueto. Escenario: Windows/MAC con Boot Camp y arranque dual. Como Windows asigna las unidades como le sale de los cojones, entro en el Administrador de Discos y las cambio a los valores que...
OS X Lion: Activar la repetición de teclas
Published 31/7/2011 20:38 | Rafael Ontivero
Sin muchas ganas de escribir una nueva entrada, voy a poner algo interesante que corrige una de las cagadas de OS X Lion: la repetición de las teclas que llevan caracteres especiales. Como os comenté en la entrada anterior, Apple la había cagado a base de bien con el tema de la repetición de teclas. Supongo que para un usuario Ruso o Báltico, la cosa puede resultarle interesante, pero no para la mayoría del resto del mundo. Si la opción fuera configurable no habría problema: se cambia y ya está,...
GetWindowText() en ropa interior
Published 18/1/2011 21:44 | Rafael Ontivero
Justo he empezado a leer The old new thing de Raymond Chen, que es un libro entresacado a partir de las entradas más interesantes del blog del autor . Y me está gustando tanto que lo estoy leyendo como si fuera una novela de aventuras, sección tras sección. En él hay un curioso capítulo que trata de las interioridades de la función de Win32 GetWindowText() que no he podido reprimirme en parafrasearlo aquí. Para aquel que no lo sepa, dicha función devuelve en uno de sus parámetros el título de la...
Archivado en: ,,
El RFOG se renueva, por dentro y por fuera
Published 2/12/2010 21:40 | Rafael Ontivero
Sí, pese a lo que dijo sobre su MAC, al final se ha comprado un PC que sin ser lo último de lo último, tiene su cosa. El MAC está bien, pero le echa a faltar muchas cosas, muchos programas y otros temas, así que, al final, en lugar de comprarse un MAC PRO, se ha decidido por un clónico. Si os preguntáis qué le ha pasado con su ordenador viejo, no lo hagáis directamente a él, porque va a coger un cabreo de cojones y posiblemente os deje con la palabra en la boca… si no os suelta alguna fresca. Básicamente...
¡Los diccionarios personalizados de Visual Assist no funcionan con Visual Studio 2010!
Published 16/9/2010 18:42 | Rafael Ontivero
Si tenéis esta estupenda herramienta de Whole Tomato seguro que os puede pasar lo que a mí. En su WEB tienen bien explicado, y clarito, cómo instalar otros diccionarios aparte del inglés que viene de serie. Los diccionarios sirven para que el programa encuentre errores ortográficos en los comentarios y otras partes. Yo suelo escribirlo todo en inglés cuando pico código (en mi macarrónico, inigualable e increíblemente culto inglés...
Archivado en: ,
Detectando fugas de memoria en Visual C++
Published 1/7/2010 13:21 | Rafael Ontivero
A veces nos encontramos con que nuestro programa “chorrea” memoria, y hasta hace poco tiempo no había nada tan terrible para un programador como encontrar dónde se producía el problema, máxime cuando se trataba de aplicaciones con múltiples hilos. Hubo una época en la que incluso había herramientas de terceros y analizadores de código para encontrar este tipo de problemas. Pero recientemente (creo que a partir de la versión...
Archivado en: ,,
Qué hacer cuando a Visual C++ se le va la pinza en el editor de diálogos
Published 17/2/2010 13:25 | Rafael Ontivero
Supongo que le habrá pasado a más de uno, que está haciendo cosas en el editor de diálogos de Visual C++ y de repente se le va la pinza y deja de funcionar como debe, a veces dando un error que no es un error. Esto normalmente se debe a que hay algo mal en el código fuente que impide al parser actuar debidamente. Quizás hemos añadido una entrada mal en el mapa de mensajes, o en el DDX o simplemente el fichero de recursos esté mal. Pero otras...
Archivado en: ,,,
Conversión ANSI a Unicode y viceversa
Published 3/2/2010 12:51 | Rafael Ontivero
Seguro que no es la primera vez que te pasa que te dejan una serie de rutinas (generalmente en formato DLL) que reciben cadenas en formato ANSI y tu aplicación está escrita en Unicode, y cuando preguntas si tienen versión Unicode te responden que no y que no la van a tener… Y como no quiero perder mi empleo, voy a parar aquí. Pues bien, existe una forma muy sencilla de pasar cadenas entre ambos formatos sin tener que liarnos con las funciones de conversión...
Archivado en: ,,,
Obtener el propio número de versión desde MFC y Win32 (y II)
Published 26/1/2010 13:30 | Rafael Ontivero
Hace poco expliqué cómo obtener el número de versión del propio ejecutable desde C++ Builder utilizando la VCL (su biblioteca de clases) y dejé como pendiente el obtenerla desde Win32 o MFC. Como lo he necesitado, he modificado el código y lo presento aquí: TCHAR appName[MAX_PATH]; GetModuleFileName(AfxGetApp()->m_hInstance,appName,MAX_PATH-1); DWORD handle; DWORD size = GetFileVersionInfoSize(appName, &handle); if(size!=0) { TCHAR *buffer = new TCHAR[size + 1]; GetFileVersionInfo(appName...
Vídeo de introducción al MFC Feature Pack de Microsoft en Microsoft
Published 17/6/2009 15:47 | Rafael Ontivero
Bueno, como podéis ver, aunque me queden un par de entradas sobre el Kindle, el RFOG sigue en la brecha de sus cosas de C++ y demás zarandajas, que fue el origen de este Blog. El que haya escrito poco sobre mis temas últimamente se debe a que he tenido mucho trabajo y he estado enormemente ocupado... ¿Qué? ¿No te lo crees? Pues yo tampoco, para serte sincero. Esto de las ganas de escribir en el blog va y viene, y unas veces hay más y otras menos, y...
Cómo abrir máquinas virtuales vmWare en ventanas independientes
Published 25/2/2009 16:00 | Rafael Ontivero
Esta es una tarea pendiente que llevaba bastante tiempo detrás de conseguir. Quizás lo que cuente aquí sea evidente para todos menos para mi, pero por si acaso -y para que no se me olvide-, voy a dejar constancia de ello. ¿Qué desarrollador moderno no tiene varias máquinas virtuales para hacer sus experimentos y pruebas? Yo al menos tengo una buena espuerta de ellas, y si bien antes usaba Virtual PC, que no es un mal producto ni de lejos, al carecer de soporte...
Hemos leído: John Lakos: Large-Scale C++ Software Design
Published 19/2/2009 17:10 | Rafael Ontivero
Bueno, realmente no lo hemos leído del todo , ya que nos quedan cien de las ochocientas páginas que componen este mamotreto, pero que si no pasa nada caerán esta noche de forma rápida, ya que son varios apéndices. ¿Por dónde empezar? Uf. Es un libro difícil de leer, no por la prosa, sino por el contenido, altamente –muy altamente- técnico. El autor parte de que ya sabes C++, pero no el C++ que puedas aprender en la escuela, sino...
Archivado en: ,,,
La estructura intraducible, I (de Interop y otras yerbas)
Published 19/12/2008 20:23 | Rafael Ontivero
A veces resulta curioso cómo algo tan sencillo como mapear una estructura de C en .NET se puede convertir en un algo muy cercano a una pesadilla dependiendo del lenguaje que hayamos elegido para realizarlo. Partamos de la siguiente estructura de C: typedef struct { BYTE byOut[4]; // Outputs [0..3] BYTE byAux; // Aux output } usbOutput; A simple vista es algo muy elemental: un array de cuatro bytes y uno más después. Esto en una máquina Intel en realidad termina ocupando 8 bytes, 4 para el primer...
C++: Insertar un ejecutable dentro de otro… y luego ejecutarlo
Published 11/9/2008 17:10 | Rafael Ontivero
Vamos a explicar cómo tomar un ejecutable (o cualquier otro fichero binario), insertarlo dentro de un ejecutable y posteriormente cómo recuperar ese ejecutable embebido, soltarlo a disco y ejecutarlo. El escenario típico es borrar el propio ejecutable que actúa como hospedante, pero seguro que a las mentes calenturientas de mis lectores se les ocurren más aplicaciones. El problema no existía en Windows 95 y siguientes: un programa podía borrar su propio ejecutable y terminar sin ningún problema ...
Archivado en: ,,,
Singleton con y sin Singleton
Published 3/3/2008 19:20 | Rafael Ontivero
Ahora que están de moda los antipatrones, voy a explicar un patrón que es muy famoso pero que no me gusta absolutamente nada, no por el diseño del mismo, sino por los efectos laterales no deseados que genera. Por ello también voy a explicar otra forma de construirlo que me gusta más, aunque adolece de otras limitaciones. Singleton es un patrón que nos obliga a tener una sola instancia de una clase, es decir, globalmente sólo podremos disponer de un objeto de ese...
Archivado en: ,,,
La que os espera... (ji ji)
Published 1/2/2008 11:37 | Rafael Ontivero
Hará como una hora que he recibido de Amazon mis últimas adquisiciones, que son los seis libros situados en la parte inferior que se pueden contemplar en la foto que acompaña esta entrada... casi 200 euros en libros, sumados a otros doscientos y pico de varios pedidos anteriores... A los de la foto hay que añadir el "Reverse Engineering" sobre el que he comentado y otro sobre patrones, en los que creo poco, por lo menos tal y como se presentan habitualmente (quizás se deba a que en las...
C++/CLI y C# VII: GetLastError en escenarios de interop
Published 25/11/2007 20:59 | Rafael Ontivero
Introducción Hay un tema que ha aparecido indirectamente en algunos mensajes del grupo de C# relativo al tema de Interop mediante atributos (que es el único que puede hacer C# y VB.NET), y que desde que estoy leyendo dicho grupo nadie ha advertido o ha tenido algún problema con él, o al menos yo no me he dado cuenta de ello. Cuando uno hace una llamada al API de Win32, muchas funciones devuelven un estado de error a través de un handle inválido o simplemente devolviendo FALSE . Es una consecuencia...
Archivado en: ,,
C++/CLI VI: Delegados e hilos
Published 17/10/2007 19:06 | Rafael Ontivero
Esta no va a ser una entrada larga explicando qué es un delegado y cómo hacer cositas con él. Esta va ser una entrada de hombres para hombres, es decir, una entrada en la que explico algo que he leído en C++/CLI in Action y que considero muy interesante y muy cuca. Vamos a utilizar un delegado para crear un hilo... pero sin hilos; voy a explicar cómo utilizar un delegado asíncrono para bifurcar el hilo principal de la aplicación y realizar dos tareas simultáneas. Seguro que más de uno en sus programas...
Archivado en: ,,
TIP: Filtrar números en un campo de edición
Published 2/10/2007 17:56 | Rafael Ontivero
Si uno quiere aplicar una máscara dentro de un campo de edición, tiene a su disposición el componente MaskEdit, que posee una propiedad llamada Mask y que, asignando ahí una serie de símbolos predefinidos, nos guiará a la hora de qué texto podemos introducir. Perfectamente válida en muchas situaciones, en otras es un engorro de lo más complicado, ya que, aunque la potencia del filtrado es enorme, a veces no nos permite una flexibilidad adecuada. En mi caso no he podido encontrar la máscara adecuada...
Al rico video fresquito
Published 11/9/2007 17:16 | Rafael Ontivero
Estaba yo aburrido en un lugar de la Mancha oriental, de cuyo nombre sí que me acuerdo pero no quiero citar, cuando trasteando aquí y allí, sin rocín flaco y con la adarga en la casa de campo de mis padres, vi una entrada curiosa por los interneses: Una espuerta de vídeos que enseñan cómo hacer un montón de cosas con las herramientas de Microsoft. Dado que el que suscribe, sin lanza y sin Yelmo de Mambrino, se dedica al mundo del C++, sólo pone el enlace para vídeos relacionados con temas que le...
Archivado en: ,,,
Más artículos Página siguiente >