posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

Interop in C++2008

È Kate Gregory la speaker per l'interoperability in C++/CLI con Visual C++ 2008.

Lo scenario di interoperabilità è indubbiamente quello più appetibile per C++. Scrivere una porzione in codice nativo e l'interfaccia utente con C# ed infine mettere le due cose assieme. Sappiamo bene che PInvoke e COM interop non sono semp;re una strada semplice o percorribile.

C++/CLI è certamente un ottima soluzione e anche molto performante. La novità che fa partire la sessione è la tanto attesa libreria STL/CLR che ha esattamente la stessa sintassi della STL (Standard Template Library). Solo cambiando include e namespace permette di cambiare il codice dalle classiche STL alla versione STL/CLR, il che rende veramente semplice migrare il codice verso quello managed.

Non potendo usare i template da C#, vengono presentate tutta una serie di facilities che permettono di ottenere delle liste di generics in luogo di quelle STL/CLR e viceversa.

Da sottolineare che le performance di STL/CLR sono migliori rispetto alle collection generiche del framework.

Si passa poi alla seconda parte della presentazione dove si parla di marshal_as che prevede di usare anche una classe di contesto per disallocare in modo più efficiente. Un esempio vale più di qualsiasi parola:

TO to = marshal_as<TO>(from)

In pratica il marshaling diventa realmente molto semplice, ma soprattutto estendibile perché è possibile aggiungere versioni di conversioni per i tipi che più vogliamo. Viene mostrato l'esempio di conversione da un RECT di Win32 con quello di System::Drawing.

DSCN0757

Avevo già usato nelle scorse settimane la libreria di marshaling per preparare un esempio di WPC e devo dire che è realmente semplice da usare. Mi preme ricordare che, anche se non citate in sessione, le conversioni masrshal_as sono disponibili per tutti i tipi principali delle Win32 e quindi il punto di partenza è già buono. Ale Contenti, PM Lead Italiano delle librerie di VC++ e presente alla sessione, mi ha detto di richiedere sul http://blogs.msdn.com/vcblog/ le versioni di marshal_as che mancano. Le più richieste saranno pubblicate dal team.

Riprendo dalle parole di Michael Howard di ieri: Vista è stato compilato con una pre-release di VC++2008. Come testing direi che è decisamente esausitvo smile_wink e da quello che si è visto i vantaggi non sono solo in materia di sicurezza.

Print | posted on mercoledì 7 novembre 2007 02:43 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET