Sto leggendo le nuove specifiche per il C++/CLI, questo è il nuovo nome delle managed extension di C++. Ribadisco quanto ho già detto in precedenti blog: le managed extension sono finite, verranno mantenute e supportate da Microsoft per coloro che hanno già del codice sviluppato con quella sintassi e che non intendono migrarlo.
Della nuova sintassi ne sono veramente entusiasta. Ci sono ancora tantissimi punti oscuri perchè la documentazione è ancora incompleta ed è ovviamente solo una delle prime bozze.
Per darvi un idea di cosa significhi questo nuovo C++, ecco il codice di una Form che ha un bottone al cui click viene aperta una message box con il classico ed immancabile.... "Hello, world".
#pragma
once
namespace NewCpp01
{
using namespace System;
using namespace System::ComponentModel;
using namespace System::Windows::Forms;
using namespace System::Drawing;
public ref class Form1 : public Form
{
public:
Form1()
{
InitializeComponent();
}
protected:
void Dispose(Boolean disposing)
{
if (disposing && components)
{
components->Dispose();
}
__super::Dispose(disposing);
}
private:
Button ^btTest;
System::ComponentModel::Container ^components;
void InitializeComponent(void)
{
this->btTest = gcnew Button();
this->SuspendLayout();
// btTest
this->btTest->Location = Point(9, 185);
this->btTest->Name = "btTest";
this->btTest->TabIndex = 0;
this->btTest->Text = "Test";
this->btTest->Click += gcnew EventHandler(this, &Form1::btTest_Click);
// Form1
this->AutoScaleBaseSize = System::Drawing::Size(5, 13);
this->ClientSize = System::Drawing::Size(292, 273);
this->Controls->Add(this->btTest);
this->Name = "Form1";
this->Text = "Form1";
this->ResumeLayout(false);
}
void btTest_Click(Object ^sender, EventArgs ^e)
{
MessageBox::Show("Hello, world");
}
};
}