Ver por etiquetas

Todas las etiquetas » c++/cli (RSS)

Visual Studio 2010 Beta 2 y C++

Por fin anoche tuve un rato -y ganas- para instalarme la Beta 2 de Visual Studio 2010 en mi ordenador secundario, y por fin podré contar lo que llevo callándome bastante tiempo por el NDA de ser MVP... porque las novedades de Visual C++ 2010 son muchas y potentes, y seguro que a más de uno le voy a dar una alegría si no lo sabe ya por otras fuentes. Pese a que hay cosas que ya son públicas desde hace mucho tiempo, voy a contarlas todas poco a poco aquí, y lo más seguro es que veáis más entradas mías...
Publicado por Rafael Ontivero | 5 comment(s)
Archivado en: ,,

Concurrencia y más concurrencia

Quienes hayan seguido mi podcast sobre Hilos en .NET se habrán dado cuenta de que la concurrencia bien entendida no es trivial ni de lejos, y eso que yo sólo cubrí los aspectos más básicos y por separado, vistos uno a uno. Quien no lo haya hecho y sienta curiosidad por el tema, puede acceder aquí , registrarse, y bajarse el vídeo y la solución de ejemplo (hay que ir hacia abajo hasta encontrar mi presentación). Herb Sutter es uno de los...

¿Qué es C++ y qué es C++/CLI?

Introducción Suele aparecer con cierta frecuencia en los foros de ayuda cierta confusión entre C++ y C++/CLI. Hay quien pregunta algo de C++ siendo C++/CLI y viceversa, o quien intenta aplicar algo de C++/CLI a C++ (y también al revés), o simplemente se ve completamente ofuscado con el tema. En esta entrada vamos a intentar poner un poco de orden en todo esto. C++ no es C++/CLI C++ es el lenguaje de toda la vida, inventando por Stroustrup y que, pese al deseo de muchos, está más vivo que nunca y...

Historia de C++ (Diseño y evolución)

· A History of C++: 1979-1991 · The Design and Evolution of C++ · Evolving a language in and for the real world: C++ 1991-2006 · Design Rationale for C++/CLI (Existe versión en castellano traducida por Octavio Hernández y yo mismo). Esta entrada iba a ser el comentario del libro The Design and Evolution of C++ , pero al hacer referencia éste al primer paper , así como la segunda parte del mismo hacer referencia al libro, he decidido comentarlos todos de un golpe. Y ya de paso, también el Rationale...
Publicado por Rafael Ontivero | 2 comment(s)
Archivado en: ,,,

Interop en C# y C++/CLI. Dos puntos de vista de un mismo concepto.

El número 57 de la revista dotNetManía (que se corresponde a marzo del corriente) publica mi artículo de título homónimo a esta entrada que, como su nombre indica, repasa ciertas formas de Interop entre C# y una DLL nativa, así como C++/CLI y la misma DLL. Entre otras cosas explico cómo convertir un delegado en un callback nativo para ser pasado a una DLL que los requiera, cómo hacer justo lo contrario, que es usar un callback nativo desde código...
Publicado por Rafael Ontivero | con no comments

La estructura intraducible, I (de Interop y otras yerbas)

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

El RFOG ya no es lo que era...

Os cuento una histora que me ha ocurrido esta misma tarde. Aparte de emocionarme al ver el nuevo iLiad con pantalla A4 (gracias, Alfredo Novoa) y de pensar que, pese a haber corregido varios defectos (ahora lleva para pasar página en tres de los cuatro lados), supongo que la velocidad leyendo Mobipocket va a ser la misma que con el iLiad, así que paso de momento. Bueno, ya me he ido por los Cerros de Úbeda. En fin, que la historia comienza con el cierre de una aplicación que tengo que montar mañana...

Primer asalto: VB.NET contra C#

Mañana por la tarde se va a desarrollar un evento por difusión Web que seguro no va a dejar indiferente a nadie, ya que, aparte del tema, dos pesos pesados del desarrollo van a pelearse para dirimir cuál de los dos lenguajes estrella del .NET es el mejor. El que quiera suscribirse al evento, que no es presencial, puede hacerlo aquí . Los integrantes del evento son Guillermo Som, alias El Guille y Marino Posadas , ambos MVP de sus respectivas áreas. Y la batalla promete ser de proporciones épicas...

Visual C++ 2008 Feature Pack en la calle

¿Recordáis esta entrada mía: Visual C++ 2008 Feature Pack ? Pues ya es oficial, ya está en la calle la versión definitiva, que amplía las características del Visual C++, añadiendo Soporte para temas visuales en MFC. Soporte para la Ribbon de Office 2007. Soporte para los temas visuales del Visual Studio y de Office 2003 (De hecho, hay un tipo de proyecto que te genera una estructura idéntica al Visual Studio 2008). Soporte para diferentes colores en los temas. Soporte para la TR1 (no tocan el compilador...

Singleton con y sin Singleton

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...
Publicado por Rafael Ontivero | 18 comment(s)
Archivado en: ,,,

C++/CLI: Bloqueos y punteros interiores

Bloqueos El lector habitual de este blog debe estar ya acostumbrado a leer aquí sobre el montículo manejado y el hecho de que las referencias en .NET son punteros móviles, es decir, apuntan y siguen al objeto en cuestión a lo largo de todos sus movimientos dentro del citado montículo, ya que uno de los elementos más potentes del .NET es la compactación de objetos asignados y la recolección de los que se han liberado, ya sea de forma automática al salir de ámbito o bien mediante su marcado manual...
Publicado por Rafael Ontivero | 6 comment(s)
Archivado en: ,

C++/CLI VIII: Usando hilos... con hilos

Si ayer hablaba sobre cómo usar hilos sin hilos, ahora vamos a hablar de hacer lo mismo pero utilizando el componente Thread , que es como se deben manejar, o mejor dicho, una de las formas adecuadas de trastearlos. Ayer comentábamos que lo habitual a la hora de crear un hilo para que realice una tarea es usar algo como esto: 1: Thread ^hilo=gcnew Thread(gcnew ThreadStart( this ,&Clase::Método)); 2: hilo->Start(); En donde &Clase::Método es la dirección del método...
Publicado por Rafael Ontivero | 3 comment(s)
Archivado en:

Hemos leído: C++/CLI in Action (Nishant Sivakumar, Manning)

Esto sí que es un libro técnico, y lo demás son tonterías. En otras palabras: el libro es bueno, muy bueno, de lo mejorcito que he leído de cualquier tema técnico relacionado con la programación. Como el título indica, se trata de una obra eminentemente práctica y profunda que trata la mayoría de los aspectos del C++/CLI sin entrar para nada en detalles sobre el .NET excepto al final, cuando explica algo sobre WPF y tecnologías asociadas. El...
Publicado por Rafael Ontivero | 3 comment(s)
Archivado en: ,,

Hemos leído: Expert C++/CLI (Marcus Heege, Apress).

Para empezar diremos que se trata de un libro muy técnico y demasiado avanzado en algunos aspectos, tanto, que más del 50% del mismo no te sirve para nada como conocimientos prácticos. Eso sí, el resto es toda una gozada en cuanto a detalles de esos que hacen que te tires un par de días buscando por qué te falla tu programa y qué estás haciendo mal, para descubrir una acumulación de características más o menos oscuras del lenguaje, de la herramienta...
Publicado por Rafael Ontivero | con no comments
Archivado en: ,

C++/CLI y C# VII: GetLastError en escenarios de interop

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...
Publicado por Rafael Ontivero | con no comments
Archivado en: ,,

Disponible un QFE (parche) para Visual Studio 2005SP1 y C++

Acaban de publicarlo en el blog del Team de Visual C++: Intenta solucionar los enormes problemas que el Intellisense tiene en C++, así como mejorar la experiencia del usuario (joer qué bien queda) en cuanto al funcionamiento del editor en relación con el Intellisense, de forma que sea más cómodo y fácil trabajar, sobre todo cuando se trata de proyectos grandes y/o soluciones con muchos proyectos. Esta actualización estará disponible e integrada en el no ya...
Publicado por Rafael Ontivero | 1 comment(s)

Eventos "a la" .NET

Dado que últimamente ni Word ni el Windows Live Writer ni siquiera la edición a mano en la plantilla de este blog me deja escribir algo coherente (cuando no son los acentos, son los ejemplos de código, etc), y como no vivo para la informática, sino que la informática vive para mí, esta entrada está en PDF. La podéis bajar de aquí .
Publicado por Rafael Ontivero | con no comments
Archivado en: ,

C++/CLI VI: Delegados e hilos

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...
Publicado por Rafael Ontivero | 3 comment(s)
Archivado en: ,,

TIP: Filtrar números en un campo de edición

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

C++/CLI V: Propiedades

Las propiedades en C++/CLI tienen un tratamiento similar, por no decir idéntico, con su equivalente en C#, con la diferencia de que son algo más potentes, no porque lo hayan hecho así, sino por las características notacionales del C++. El concepto de propiedad no nace con el .NET, sino que existe desde mucho antes. Ya Borland en su Turbo Pascal Delphi implementa la idea, luego extendida a C++Builder: l as closures el __property . El concepto nace con la idea de tener una forma de acceder a variables...
Publicado por Rafael Ontivero | 2 comment(s)
Archivado en: ,,
Más artículos Página siguiente >