■Visual C++によるManaged Codeの例(一部を抜粋)
(赤字はコードに対するコメント)
1: #using <mscorlib.dll> 2: using namespace System; 3: 4: #using <System.DLL> ←使用するクラスライブラリを指定する。 5: #using <Microsoft.Win32.Interop.dll> 6: #using <System.Drawing.DLL> 7: #using <System.WinForms.DLL> 8: 9: using namespace System::IO; 10: using namespace System::Drawing; 11: using namespace System::WinForms; 12: 13: #define null 0L 14: ↓「__gc」によりガーベジ・コレクションの対象となる(Managed Codeとなる) 15: __gc class mNotepad : public Form ←System.WinForms.Formより派生 16: { 17: static String* s_strAppName = S"Managed C++ Notepad"; 18: public: 19: // constructor 20: mNotepad() : m_bFileOpen(false) { 21: InitForm(); 22: } 23: 24: // destructor 25: virtual ~mNotepad() 26: { 27: } 28: 29: private: 30: bool OnResetModifedBuffer() 31: { 32: if(!(m_pTextBox->Modified)) // nothing to save 33: return true; 34: 35: String* strFile = m_pFileName ? m_pFileName : S"Untitled"; ←「S"…"」は.NET Frameworkでの文字列定数 36: 37: switch( MessageBox::Show(String::Concat( S"The text in the ", strFile, S" file has changed.\n\nDo you want to save the changes?"), s_strAppName, MessageBox::YesNoCancel ) ) 38: { 39: case DialogResult::Cancel: return false; 40: case DialogResult::Yes: FileMenuSave(null, null); 41: case DialogResult::No: return true; 42: default : return false; 43: }; 44: }; 45: 46: void HelpMenuAbout(Object * pSender, EventArgs * pArgs) 47: { 48: MessageBox::Show(S"Version 1.0", s_strAppName); 49: } 50: 51: void FileMenuNew(Object * pSender, EventArgs * pArgs) 52: { 53: if( !OnResetModifedBuffer() ) 54: return; 55: m_pTextBox->Text = S""; 56: m_pTextBox->Select(0,0); 57: 58: m_bFileOpen = false; 59: 60: // 61: // Set the application's caption 62: // 63: Text = String::Concat(S"Untitled - ", s_strAppName ); 64: m_pTextBox->Modified = false; 65: 66: }