C++

He leído: The old new thing de Raymon Chen

Una de las liturgias de mi familia y mía en particular es almorzar donde mi abuela Basi. La liturgia es muy simple, siempre que llego a mi pueblo, Belorado, a eso de media mañana, pongo el culo en una de las sillas de la cocina de mi abuela y degusto alguno de los manjares que prepara: unos huevos fritos o en salsa, una morcillita asada, un trocito de queso, chorizo, pancetita, asadurilla, bacalao… vamos el típico almuerzo castellano. Supongo que muchos ya estaréis salivando pero el tema no es la...
Publicado por Rodrigo Corral | 4 comment(s)
Archivado en: ,


Chrome usa código abierto de Microsoft

Que cosas tiene la vida, oye. Va a resultar que el código de los ingenieros de Microsoft no es tan malo como nos quieren hacer creer a veces los partidarios de otros sistemas operativos... Me da por mirar que librerías usa Chrome , y veo que, además de lo ya sabido de que usan Visual Studio como entorno de desarrollo , Chrome usa WTL , Windows Template Library , una librería excelente, basada en metaprogramación mediante templates de C++, que genera ejecutables extremadamentes eficientes y sin dependencias...
Publicado por Rodrigo Corral | 2 comment(s)
Archivado en: ,

Bugleanos... o la historia de un bug que no lo es

Desde que apareció el primer bug de la historia , los desarrolladores los venimos sufriendo con frecuencia. Siempre que nos enfrentamos a un comportamiento anómalo, pasamos por varias fases. En una primera fase asumimos que hemos cometido un error, depuramos y le damos vueltas a asunto hasta que, varias madiciones depués, pasamos a la siguiente fase. No puede ser mi fallo, el error tiene que estar en las librerías que estoy utilizando. Y pasamos a buscar un 'workarround'... Total no nos queda...
Publicado por Rodrigo Corral | 11 comment(s)
Archivado en: ,,

STLPort y Visual Studio 2005

Aunque la versión de STL que proporciona Visual C++ 2005 es en muchos aspectos superior a la de STLPort, aun hay mucha gente que utilizar STLPort por motivos históricos (la STL de Visual C++ 6.0 era pésima) o por cuestiones de portabilidad (STLPort está disponible para infinidad de plataformas). Ya que me he visto en la necesidad de hacerlo, os cuento como usar STLPort con Visual C++ 2005, que puede ser un poco farragoso, sobre todo si es la primera vez: Descargar la última versión disponible de...
Publicado por Rodrigo Corral | 2 comment(s)
Archivado en:

¿Cómo llamar a servicios web desde C/C++?

Como últimamente me han realizado esta pregunta en varias ocasiones la voy a contestar en este post, seguro que a alguien le vendrá bien la respuesta. Los servicios web se han extendido espectacularmente en los últimos años. Ya casi no existe ninguna aplicación que no exponga un API de integración basada en una fachada de servicios web. Una de las grandes ventajas de los servicios web es que se pueden llamar desde cualquier lenguaje de programación ya que lo único necesario es ser capaz de contruir...
Publicado por Rodrigo Corral | 5 comment(s)
Archivado en:

De C/C++ a C# de la mano de Petzold

Charles Petzold autor de varios libros que son 'la biblia' para los desarrolladores en plataforma Windows, ha escrito un libro, .Net Book Zero (en inglés) que se puede descargar gratuitamente en pdf o xps , en el que guia a los programadores de C/C++ hacia el desarrollo en plantaforma .Net con C#. Por lo que he tenido ocasión de ojear del libro parece que merece la pena hecharle un vistazo. Destacar que aborda cuestiones del Framework 2.0 como genéricos y tipos anulables. Además el libro viene acompañado...
Publicado por Rodrigo Corral | 2 comment(s)
Archivado en: ,,

Por fin: Code Snippets en Visual C++

Con la liberación de Microsoft Visual Studio 2005 IDE Enhancements hace pocas semanas, los code snippets han llegado a Visual C++. Para insertarlos podemos usar los nuevos menus contextuales que nos aparecerán: La otra opción para insertarlos es escribir el identificador del Code Snippet y pulsar dos veces TAB. Lo bueno no es solo que contemos con unos cuantos Code Snippets ya disponibles, sino que podemos comenzar a crear los nuestros propios. Es sencillo escribir Code Snippets pues se crean en...
Publicado por Rodrigo Corral | con no comments
Archivado en: ,

Excelentes recursos sobre C++/CLI

Cada vez más desarrolladores descubren el poder de C++/CLI como lenguaje en plataforma .Net y la facilidad para migrar programas existentes en plataforma nativa, añadirles funcionalidades usando el framework de .Net o combinar componentes nativos y manejados en nuestras aplicaciones sin pagar el coste de Interop, por solo citar algunas de las ventajas de este lenguaje. Pues bien hay una serie de recursos en castellano que nos ayudaran a introducirnos en este lenguaje: De la mano del amigo Rafael...
Publicado por Rodrigo Corral | 3 comment(s)
Archivado en: ,


Desde el Tech Ed: Día 3

Bueno, bueno... que duro es esto del Tech Ed. Sesión tras sesión y charla tras charla entre sesiones se va abriendo ante uno un nuevo mundo de técnicas y tecnologías en las que profudizar. Eso es lo malo del Tech Ed, te enteras en una semana de lo mucho que desconoces y cada sesión y cada conversación de pasillo te abre la 'necesidad' de profundizar en un montón de nuevas areas. En el Tech Ed se aprende mucho, sin duda, pero lo que más...
Publicado por Rodrigo Corral | 10 comment(s)
Archivado en: ,,,

Desde el Tech Ed: Día 1

Buento tal y como prometí comienzo la serie de 'crónicas' desde el Tech Ed. Ayer era mi primer día, pues no asistí a las 'preconferences'. Fue un día intenso. Comezabamos la mañana con la Key Note, una especie de prefacio que le ponen todos los años al Tech Ed donde habla algún gerifalte de Microsoft. Este año le toco a Eric Rudder. La verdad es que no fue una sesión tan 'marketiniana' como esperaba. Ponía...
Publicado por Rodrigo Corral | 1 comment(s)

Desarrollo web en C++ en IIS 7

Ya he hablado anteriormente en este blog sobre el desarrollo web con C++ sobre IIS . Pues bien según he sabido, las cosas en IIS cambian un poco, porque el API C/C++ expuesta por IIS 7 es diferente a la de IIS 6, a consecuencia de lo cual, los ISAPI han caido en deshuso. Para extender las capacidades de IIS 7 aparece un nuevo API nativo en C++ que reemplaza al antiguo API de filtros y extensiones ISAPI, en favor de los ahora llamados modulos. En cualquier caso los filtros y extensiones ISAPI...
Publicado por Rodrigo Corral | 4 comment(s)
Archivado en:

Funciones callback, interop y copiado de ficheros conociendo el progreso en C++/CLI

Respecto a C++/CLI siempre oimos que es facilisimo el mezclar código manejado con código no manejado. Hasta hoy no había probado a fondo esta posibilidad. Pero a raiz de una pregunta en el grupo de news de C++ de Microsoft me he puesto manos a la obra. C++/CLI, aunque puede usar toda la 'artilleria' de Interop con la que cuenta el Framework de .Net, cuenta con una tecnología llamada IJW (It Just Works) que permite hacer llamadas entre código manejado y no...
Publicado por Rodrigo Corral | 2 comment(s)
Archivado en: ,

Dependencias circulares de formularios en C++/CLI

Es una situación relativamente habitual que dos clases se tengan que conocer entre sí, es lo que se conoce como referencia circular . Aunque en principio debería sospechar de esta situación por el alto acoplamiento que introduce entre ambas clases, hay veces, en que puede ser excesivo crear una clase para que maneje la comunicación entre las clases. De todos modos si decidís usar este enfoque, una buena implementación es utilizar el patrón mediator...
Publicado por Rodrigo Corral | 4 comment(s)
Archivado en: ,

Extraordinario evento sobre C++ en Huesca

Microsoft nos propone un espectacular evento sobre C++ en Huesca. Son dos días en los que podremos experimentar las mejoras y espectaculares posibilidades de C++ con utilizando una de nuestras propias aplicaciones. Si estaís planteandoos migrar una aplicación desde versiones anteriores de C++ a Visual C++ 2005 es una oportunidad única de hacerlo guiados por excelentes profesionales. Sin duda C++ es el lenguaje que más a evolucionado y mejorado con la aparición...
Publicado por Rodrigo Corral | con no comments
Archivado en:

El efecto WINVER y tooltips de tipo balón

¿Porqué el compilador de C++ no encuentra una función, mensaje o estructura del API de Windows? A menudo recibo esta pregunta. Resulta que el compilador de C++ no encuentra algún simbolo definido en un archivo de cabecera de Windows. A menudo nos ocurre esto cuando queremos utilizar alguna funcionalidad 'recien salida del horno' y que no esta prensente en versiones anteriores de Windows. El error que se recibe habitualmente es: error C2065: 'IDENTIFICADOR'...
Publicado por Rodrigo Corral | 1 comment(s)
Archivado en:


¿Cómo enumerar los procesos que esta ejecutando la máquina?

Es una pregunta que me hacen o leo frecuente. Utilizando el Api de Win32, lo mejor es usar la función EnumProcs que esta disponible en este articulo de la Knowledge Base de Microsoft. En el mundo .net es algo más sencillo, basta utilizar el método GetProcesses de la clase Process . Tambien hay una entrada sobre el tema en la Knowledge Base , que explica como hacerlo en VB.net pero el código en C# es bien simple: using System.Diagnostics; ... Process[] running = Process.GetProcesses(); foreach(Process...
Publicado por Rodrigo Corral | 1 comment(s)
Archivado en: ,,

¿Cómo crear una dll que exporte funciones tipo "API de Windows"?

Si queremos aseguranos que un API pueda se llamada desde cualquier lenguaje, la mejor opción es crear una dll que exporte funciones al estilo del API de Windows, es decir al estilo C. Casí cualquier lenguaje de programación cuenta con un mecanismo para llamar a esta clase de funciones, porque es el tipo de funciones que exporta el API de windows. Quiza la única excepción es Visual Basic Script, si quieres construir una API que pueda ser llamada desde VBS y desde cualquier lenguaje que soporte COM...
Publicado por Rodrigo Corral | 6 comment(s)
Archivado en:

¿Como mostrar imagenes en una ventana en VC++ nativo?

Conozco 2 maneras de realizar esto: 1) Utilizar la clase CPiture (que encapsula la interfaz IPicture), escrita por Paul Dilascia, que permite usar JPG, GIFF y BITMAP y sobre la que puedes encontrar información en los siguientes vinculos: Displaying a JPG in your MFC Application 2) Utilizar el nuevo API GDI+ que permite trabajar con BMP, JPEG, PNG, GIF y TIFF y estas disponible como un runtime de aproximadamente 1 Mb de tamaño. Esta libreria es propocionada sin ningún royalti como distribuible por...
Publicado por Rodrigo Corral | con no comments
Archivado en:

Desarollo web con Visual C++

últimamente, mucha gente me está preguntando como puede llevar código escrito en Visual C++ a la web. Aunque en principio C++ no parece el lenguaje ideal para programar "para internet", existen varias motivaciones: Aprovechar código o librerias existentes. Obtener un mejor rendimiento. Utilizar servicios web para interoperar. Aprovechar el know-how exitente en C++. Con idependencia de la motivación, que seguro existen algunas otras, el problema habitual es que la gente desconoce que opciones tiene...
Publicado por Rodrigo Corral | 2 comment(s)
Archivado en: ,

Seleccionar una fila completa en un control ListView

El truco para habilitar la selección de un fila entera consiste en aplicar el estilo extendido LVS_EX_FULLROWSELECT a la lista. En C++ http://support.microsoft.com/kb/230049 En Visual Basic http://support.microsoft.com/kb/181440/ En .Net no es necesario hacer trucos del almendruco, basta con establecer la propiedad FullRowSelect a true.
Publicado por Rodrigo Corral | con no comments
Archivado en:
Más artículos Página siguiente >