|
|
1.1 ! root 1: ======================================================================= ! 2: MICROSOFT (R) FOUNDATION CLASSES ! 3: ======================================================================= ! 4: ! 5: *********************************************************************** ! 6: *** for Microsoft Windows (R) NT (tm) *** ! 7: *********************************************************************** ! 8: ! 9: BETA RELEASE 1 ! 10: ! 11: This is the Beta Release of the Microsoft (R) Foundation Classes for ! 12: Microsoft Windows NT. ENJOY! Release notes can be found at ! 13: the end of this file. ! 14: ! 15: ! 16: ----------------------------------------------------------------------- ! 17: ! 18: This subdirectory contains the source code and example code for ! 19: the Microsoft Foundation Class (MFC) C++ library. The MFC library is ! 20: a C++ Application Framework designed primarily for use in developing ! 21: applications for Microsoft Windows. The MFC library is used in ! 22: conjunction with the tools provided with the NT beta release. ! 23: ! 24: The MFC library consists of two groups of classes. One set is ! 25: designed for use with Microsoft Windows and includes classes ! 26: tailored for GUI application programming, such as classes for ! 27: windows, dialogs, controls, and menus. The other classes ! 28: are a set of lower level, non-graphical, general purpose classes ! 29: designed to make it easier to write the part of your application ! 30: that is independent of the user interface, and includes classes ! 31: supporting collections, files, memory management, and ! 32: runtime support. The Windows classes take advantage of the ! 33: features provided by these general purpose classes. ! 34: ! 35: The MFC library is designed to be efficient in both space ! 36: and time. There is a minimal execution time overhead, and ! 37: the entire library, all 60 classes, is under 39K of executable code. ! 38: ! 39: A complete introduction to the MFC library can be found in the ! 40: Overview section of the "Class Reference" book. ! 41: ! 42: ! 43: Windows Classes ! 44: --------------- ! 45: Microsoft Windows and C++ are "object-oriented" and the MFC ! 46: library exploits the Windows operating environment. The Windows ! 47: C++ classes offer the following features: ! 48: ! 49: o Robust Application Framework for Windows ! 50: o Tight coupling to the Windows API ! 51: o Significant reduction in API "surface area" ! 52: o Complete classes for nearly all Windows objects ! 53: o Efficient processing of Windows messages with message maps ! 54: o Customizable window classes using C++ inheritance ! 55: o Utility classes to make Windows programming easier ! 56: ! 57: The Windows classes can be used in conjunction with all the standard ! 58: Windows APIs and can easily incorporate existing Windows code. In ! 59: addition, the MFC Windows classes provide a seamless migration to ! 60: the forthcoming 32-bit Windows API. ! 61: ! 62: ! 63: General Purpose Classes ! 64: ----------------------- ! 65: The general purpose classes are useful both with and without Windows. ! 66: If you are writing a program that does not use Windows, you can ! 67: still take advantage of the MFC library for your application's ! 68: user interface independent code. All of the features are optional ! 69: and will incur no runtime overhead if you choose not to use them. The ! 70: general purpose C++ classes include the following features: ! 71: ! 72: o Common base class for many classes ! 73: o Runtime type and metaclass support ! 74: o Persistent objects ! 75: o Collection classes based on ANSI C++ template syntax ! 76: o String class ! 77: o Time and Date classes ! 78: o File classes ! 79: o Exception handling based on ANSI C++ syntax ! 80: o Diagnostic and debugging support ! 81: ! 82: ! 83: Support for Windows 3.1 features ! 84: -------------------------------- ! 85: The Microsoft Foundation classes provide support for the ! 86: enhancements provided in Windows version 3.1. The following ! 87: features are described in technical notes in the ! 88: \NT\MSTOOLS\MFC\DOC directory and demonstrated in sample programs in ! 89: \NT\MSTOOLS\MFC\SAMPLES. These API functions are documented only in ! 90: the Help system. The following list describes the enhancements ! 91: that can be used to develop applications for both Windows 3.0 ! 92: and Windows 3.1. ! 93: ! 94: o The development and use of custom controls is supported. In ! 95: addition, owner draw controls and bitmap buttons are provided. ! 96: See TN014.TXT and the sample application CTRLTEST. ! 97: ! 98: o To improve robustness, the Microsoft Foundation Class Library ! 99: fully supports the STRICT data types defined in the Windows 3.1 ! 100: interface file, WINDOWS.H. ! 101: ! 102: o Common dialog operations are now supported with easily ! 103: customized classes including CFileDialog (for both File Open ! 104: and File Save As), CFindReplaceDialog (to implement modeless ! 105: find and replace), CColorDialog (for color selection), ! 106: CPrintDialog (for both print setup and print), and ! 107: CFontDialog (for font selection). These new dialogs are ! 108: described in TN013.TXT. ! 109: ! 110: o Dialog boxes now feature a gray background which is easily ! 111: customized. ! 112: ! 113: o OLE servers now register themselves at startup so that ! 114: users do not need to use REGEDIT.EXE. ! 115: ! 116: o Using multiple inheritance with Microsoft Foundation ! 117: classes is demonstrated in the sample application MINSVRMI, ! 118: a small OLE server that uses multiple inheritance. ! 119: ! 120: o For applications that target Windows 3.1 only, the Microsoft ! 121: Foundation Class Library supports the most useful new Windows ! 122: 3.1 API functions and messages. ! 123: ! 124: ! 125: Why use the Microsoft Foundation library instead of C and the SDK? ! 126: ------------------------------------------------------------------ ! 127: The MFC library has many advantages over using the traditional ! 128: C techniques in the Microsoft Software Development Kit for Windows. ! 129: Some of these advantages include: ! 130: ! 131: o MFC decreases the API surface area; the SDK is a catalog of ! 132: hundreds of functions, whereas the MFC library takes advantage ! 133: of the inheritance and polymorphism supported by C++ to organize ! 134: the Windows APIs in a logical and manageable manner. ! 135: ! 136: o MFC provides a standard Windows application startup; the ! 137: MFC class CWinApp implements the functionality normally provided ! 138: in WinMain. ! 139: ! 140: o MFC encapsulates Windows behavior; the class structure ! 141: and data encapsulation supported by C++ safely hides many ! 142: of the details that programmers need not concern themselves ! 143: with. ! 144: ! 145: o MFC handles many details of Windows programming; gone are ! 146: the days of registering Window classes or MakeProcInstance. ! 147: ! 148: o MFC provides a object-oriented mechanism for routing ! 149: Windows messages; the message map supported by each window ! 150: C++ class provides a cleaner and less error prone mechanism for ! 151: handling the mapping of Windows messages to member functions. ! 152: Messages, commands, and notifications can be handled in this ! 153: object-oriented manner. ! 154: ! 155: o MFC taps the power of C++. C++ supports many features that ! 156: make writing programs easier, such as type safety, encapsulation, ! 157: inheritance, and polymorphism, that when used in conjunction with ! 158: MFC provides the best technique for writing Windows programs ! 159: in C++. ! 160: ! 161: ! 162: Usage ! 163: ----- ! 164: Source code is provided so that you can build the library target ! 165: that you require. The file SRC\README.TXT contains instructions for ! 166: building the library. ! 167: ! 168: Before using the MFC library in your own code be sure that the ! 169: MFC\INCLUDE subdirectory is in your INCLUDE environment variable. ! 170: ! 171: ! 172: Subdirectories ! 173: -------------- ! 174: The MFC subdirectory contains several subdirectories. Nearly every ! 175: subdirectory contains a README.TXT file that describes the ! 176: directory's contents. The following subdirectories are present: ! 177: ! 178: DOC\ - MFC technical notes describing implementation details. ! 179: INCLUDE\ - MFC header files. ! 180: SRC\ - MFC source files and instructions for building a library. ! 181: LIB\ - MFC libraries in binary form. ! 182: SAMPLES\ - MFC sample applications. ! 183: ! 184: ! 185: Documentation ! 186: ------------- ! 187: The NT release of the MFC library ships with both on-line Quickhelp ! 188: documentation only. No MFC printed documentation is available with this ! 189: release, but the printed MFC documentation provided with the Microsoft ! 190: C/C++ 7.0 compiler can be used 'as-is'. ! 191: ! 192: If you have any comments or suggestions regarding the Microsoft ! 193: Foundation Classes, please let Microsoft know through the beta program ! 194: liaison. ! 195: ! 196: ! 197: NOTE ! 198: ---- ! 199: ! 200: The Microsoft Foundation Classes (MFC) library source code is ! 201: shipped "as is" and is designed for your own use and modification. ! 202: Microsoft Product Support can only offer limited support regarding ! 203: the MFC source code because of this benefit. ! 204: ! 205: Microsoft grants you a non-exclusive royalty-free right to use and ! 206: modify the source code contained in any Microsoft Foundation Classes ! 207: source code file for purposes of creating a software product. ! 208: However, you may not include this code in source form (or ! 209: any modified version of it) within any software product. ! 210: ! 211: Notwithstanding the Microsoft End User License Agreement, THIS SOURCE ! 212: CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. YOU AGREE THAT ! 213: NEITHER MICROSOFT NOR ANYONE ELSE INVOLVED IN CREATING, PRODUCING OR ! 214: DELIVERING THE SOURCE CODE SHALL BE LIABLE FOR ANY DIRECT, INDIRECT, ! 215: CONSEQUENTIAL, OR INCIDENTAL DAMAGES RELATING TO THE SOURCE CODE. ! 216: ! 217: ! 218: Windows NT Release Notes: ! 219: ------------------------- ! 220: ! 221: -- This beta release is a strict superset of the Microsoft C/C++ 7.0 release ! 222: of MFC. Any applications written for the MFC C++ Windows API will ! 223: need only be recompiled using the 32 bit tools in this release in order ! 224: to run in full 32 bit mode. For those familiar with MFC, you will ! 225: note that the sample applications included in this release are ! 226: unchanged from the 16 bit release. This release of MFC can be used ! 227: interchangeably with the Microsoft C/C++ 7.0 release. ! 228: ! 229: -- In order to build the MFC sample applications you should have your ! 230: environment set as follows: ! 231: set NTMFC=1 ! 232: set LIB=c:\mstools\lib (note this is not a ';' list) ! 233: set INCLUDE=c:\mstools\mfc\include;c:\mstools\h ! 234: These may also be set on the NMAKE command lines if you wish. If your ! 235: installation is on another drive or in another directory, then you ! 236: should change c:\nt\mstools accordingly. ! 237: ! 238: NOTE: THE INCLUDE PATH ESTABLISHED BY THE NT SDK SETUP PROGRAM WILL ! 239: NOT WORK FOR MFC COMPILES. BEFORE COMPILING MFC CODE YOU MUST CHANGE ! 240: THE INCLUDE PATH AS DESCRIBED ABOVE. ! 241: ! 242: -- The MFC\INCLUDE directory for this release contains copies of the ! 243: Windows NT header files. The copies have several modifications made ! 244: in order to make them more consistent with C++ and the Windows 3.1 ! 245: header files. This is only for this beta release and these changes ! 246: will be folded into the header files in MSTOOLS\H for the next release. ! 247: You must use these in order to successfully build the MFC library or ! 248: any MFC sample applications. ! 249: ! 250: -- Your PATH must include the Windows SDK Tools and Microsoft C/C++. ! 251: ! 252: -- Online documentation is available via QuickHelp (QH.EXE). The .HLP ! 253: files are located on the CD-ROM in MSTOOLS\HELP\QH. You must copy ! 254: the help files and the QuickHelp application (QH.EXE) from the CD-ROM ! 255: to your target hard disk yourself -- the NT SDK setup program will not ! 256: install Quickhelp documentation. ! 257: ! 258: Windows WinHelp files for MFC are not currently available. ! 259: ! 260: -- This beta release of MFC does not include DLL support. ! 261: ! 262: -- Do not use the /Zp switch for MFC applications. If you do some system ! 263: calls may not work (such as COMMDLG). ! 264: ! 265: -- The COFF linker emits a warning when it does not extract any modules ! 266: from a .LIB. The MFC sample applications will emit this warning which can ! 267: be ignored. ! 268: ! 269: -- You may experience problems printing with the sample applications that ! 270: print. ! 271: ! 272: -- The CHART sample application currently has several low level compiler ! 273: warnings that can be ignored. These will be addressed. ! 274: ! 275: -- The MULTIPAD sample application currently has an inconsistency with the ! 276: way it maintains the file MRU menu items. This will be fixed. ! 277: ! 278: -- The retail version of the MULTIPAD sample may fault on exit. This ! 279: will be fixed in a future release. ! 280: ! 281: -- The "self-draw" control functionality for custom menu items (demonstated ! 282: in the CTRLTEST sample application) currently behaves inconsistently. ! 283: This will be fixed. ! 284: ! 285: -- The MINSVRMI sample application may fault. This will be fixed. ! 286: ! 287: -- CListBox::FindStringExact and CComboBox::FindStringExact do not ! 288: work correctly. This will be fixed. ! 289: ! 290: -- Debugging C++ applications is quite "challenging" with this release. We ! 291: recommend the liberal use of trace statements and { _asm int 3 } lines ! 292: in your code. The NTSD debugger does not currently permit the setting ! 293: of breakpoints on C++ member functions. If you have global functions ! 294: that are not overloaded, then using the extern "C" construct will prevent ! 295: name decoration and permit the setting of breakpoints. If all else fails, ! 296: you can always debug your MFC application using C/C++ 7.0 ! 297: on a machine running CodeView 4.0 and Windows 3.1. The C++ expression ! 298: evaluator for WinDebug will be made available as soon as practical.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.