home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_11_09 / 1109062a < prev    next >
Text File  |  1993-07-08  |  2KB  |  95 lines

  1. //  testcout.cpp
  2. //  Program to see how cout and cerr can be
  3. //  directed to a window
  4.  
  5. #include    "stdhdr.h"
  6. #include    "test_r.h"
  7. #include    "testcout.h"
  8.  
  9. App local_app;
  10.  
  11. BOOL App::InitInstance ()
  12. {
  13. cerrbuf = new winstreambuf;
  14. cerr = cerrbuf;
  15. cerr.setf (ios::unitbuf);
  16. coutbuf = new winstreambuf;
  17. cout = coutbuf;
  18. #if defined (_DEBUG)
  19.     exit_code = 0;
  20.     start.Checkpoint ();
  21. #endif
  22. m_pMainWnd = new CMainWindow ();
  23. m_pMainWnd->ShowWindow (m_nCmdShow);
  24. m_pMainWnd->UpdateWindow ();
  25.  
  26. cerr_window = new ostreamWnd ("cout/cerr");
  27.  
  28. cerrbuf->set_stream_window (cerr_window);
  29. coutbuf->set_stream_window (cerr_window);
  30. return TRUE;
  31. }
  32.  
  33. int App::ExitInstance ()
  34. {
  35. #if defined (_DEBUG)
  36.     end.Checkpoint ();
  37.     if (difference.Difference (start, end))
  38.         {
  39.         difference.DumpStatistics ();
  40.         difference.DumpAllObjectsSince ();
  41.         set_exit_code (100);
  42.         }
  43. #endif
  44. delete cerrbuf;
  45. delete coutbuf;
  46. #if defined (_DEBUG)
  47.     return exit_code;
  48. #else
  49.     return 0;
  50. #endif
  51. }
  52.  
  53. CMainWindow::CMainWindow ()
  54. {
  55. VERIFY (LoadAccelTable ("MainAccelTable"));
  56. VERIFY (Create (NULL, "Test iostream and windows",
  57.         WS_OVERLAPPEDWINDOW, rectDefault, NULL,
  58.         "MainMenu"));
  59. }
  60.  
  61. BEGIN_MESSAGE_MAP (CMainWindow, CMDIFrameWnd)
  62.     ON_WM_CLOSE ()
  63.     ON_COMMAND (IDM_ABOUT, OnAbout)
  64.     ON_COMMAND (IDM_EXIT, OnClose)
  65.     ON_COMMAND (IDM_TEST, OnTest)
  66. END_MESSAGE_MAP ()
  67.  
  68. void CMainWindow::OnClose ()
  69. {
  70. VERIFY (DestroyWindow ());
  71. }
  72.  
  73. void CMainWindow::OnAbout ()
  74. {
  75. MessageBox ("cout/cerr test interface to iostream\n"
  76.             "Copyright Singleton Systems Ltd, 1993",
  77.             "About");
  78. }
  79.  
  80. void CMainWindow::OnTest ()
  81. {
  82. static int count;
  83. cerr << "This is a test cerr message.  ";
  84. cerr << "count = " << count++;
  85. cerr << "  Followed by another cerr message";
  86. cout << "\nThis is some output via cout.  ";
  87. cerr << "\nfollowed by some more cerr text on "
  88.         "another line, designed ";
  89. cout << "And some more cout output and endl" << endl;
  90. cerr << "to more (cerr) than fill the buffer, "
  91.         "which is 128 bytes long";
  92. cerr << "\nOK";
  93. cerr << endl;
  94. }
  95.