BUILD.TXT
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:7k
源码类别:

Windows编程

开发平台:

Visual C++

  1. ===========================================================
  2.            INSIDE OLE BY KRAIG BROCKSCHMIDT
  3.                     COMPANION DISC
  4.        COPYRIGHT (C) 1995 BY KRAIG BROCKSCHMIDT
  5. ===========================================================
  6. The MAKEALL.BAT file in the installation directory will
  7. build all of the programs in the sample tree, copying
  8. the necessary header files to the INC directory, the necessay
  9. import libraries to the LIB directory, and the build binaries
  10. (DLLs, EXE, type libraries) to the BUILD directory.
  11. The root MAKEALL.BAT file simply spawns the MAKEALL.BAT files
  12. found in each directory.  The latter build file will then
  13. run NMAKE in each subdirectory for that chapter and will copy
  14. the resulting files as necessary.  The MAKEALL.BAT files
  15. redirect all compiler output to a file called ERR.  Each sample
  16. directory will have its own ERR file, and after the build
  17. process is complete, BUILDERR will contain all the error
  18. output from all the samples.
  19. The MAKEFILE for each sample program sets a number of options,
  20. defines dependencies, and pulls in the files INOLE-A.MAK
  21. and INOLE-B.MAK.  These two files are found in the root
  22. directory of the sample code installation.
  23. INOLE-A.MAK is the one central location that defines symbols,
  24. compiler and linker flags, and any other common build variables.
  25. INOLE-B.MAK, on the other hand, defines the link scripts.
  26. If you type "nmake CLEAN" in any sample directory, the makefile
  27. will remove all built files from that directory.  To clean an
  28. entire directory, you can set the CLEAN environment variable
  29. by typing
  30.     set CLEAN=1
  31. at the command prompt, then running a MAKEALL.BAT file.  If you
  32. do this in the installation directory of the samples, the makefile
  33. system will remove all built files, freeing a tremendous amount
  34. of disk space.
  35. To reinstate the normal build process, type
  36.     set CLEAN=
  37. at the command prompt.
  38. NOTE: The make files on this disc are intended to be run from the
  39. command line with Visual C++.  If you are using another compiler
  40. then you will need to change the compiler and linker options
  41. in INOLE-A.MAK and INOLE-B.MAK, and double-check the MAKEFILE
  42. in each sample directory.
  43.                     BUILD OPTIONS
  44. With this build structure you are able to build the samples
  45. with or without debug, targeted for Win6 or Win32, and targeted
  46. for Unicode or ANSI character sets when compiling for Win32.
  47. In additions, some of the samples can compile to both
  48. Multiple-Document Interface (MDI) and Single-Document Interface
  49. (SDI) versions.
  50. The default settings will compile Win32 MDI ANSI-character samples
  51. with debug information.  A full build with these options will
  52. consume approximately 165MB of disk space; a no-debug build
  53. will consume about 112MB.  In both cases at least 5MB of extra
  54. space is necessary for temporary files.  Depending on your
  55. machine, a build can take up to several hours.
  56. To create builds without debug information, set the NODEBUG
  57. environment variable by typing
  58. SET NODEBUG=1
  59. at the command prompt. To go back to a debug build, type
  60. SET NODEBUG=
  61. to remove the NODEBUG variable from the environment.
  62. To create builds that use SDI instead of MDI, set the SDI
  63. environment variable by typing
  64. SET SDI=1
  65. at the command prompt. To go back to MDI programs, type
  66. SET SDI=
  67. to remove the SDI variable from the environment.  Note that
  68. you must rebuild the code in the CLASSLIB directory after
  69. changing this variable and before building any of the COSMO
  70. or PATRON samples in any other chapter.  The CLASSLIBMAKEALL.BAT
  71. file will build a clean version of the CLASSLIB code and copy
  72. the necessary files into other directories.
  73. To create builds for Windows NT that use the Unicode character
  74. set, set the UNICODE environment variable by typing
  75.     SET UNICODE=1
  76. at the command prompt. To go back to ANSI programs, type
  77.     SET UNICODE=
  78. to remove the UNICODE variable from the environment.  Note that
  79. you must rebuild the code in both the CLASSLIB and INOLE
  80. directories after changing this variable, as many other samples
  81. depend on these core libraries.  So after changing the UNICODE
  82. variable be sure to run MAKEALL.BAT in both INOLE and CLASSLIB
  83. directories before attempting to build any other sample again.
  84. Finally, if you are running on a 16-bit operating system such
  85. as Windows 3.1x, set the WIN16 environment variable by typing
  86.     set WIN16=1
  87. at the comment prompt.  Because you'll normally not change this
  88. variable, it is helpful to include the line in you AUTOEXEC.BAT.
  89. For more detailed information about the effects of each of
  90. these variables, see INOLE-A.MAK.
  91.     HANDLING THE 32-BIT OLE UI LIBRARY
  92. Depending on the versions of Visual C++ and whether or not
  93. you have a Win32 SDK installed in your system, you may encounter
  94. compilation errors concerning the files OLEDLG.H and OLEDLG.LIB.
  95. These files are the header and import library for the OLE UI
  96. Library.  Prior to Windows 95 and Windows NT 3.51, which include
  97. this library as part of the system itself, the OLE UI Library was
  98. provided by Visual C++ itself.
  99. If you have the Win32 SDK for Windows 95 and Windows NT 3.51, then
  100. you should already have the necessary files on your machine.
  101. If you only have Visual C++ 2.0 or 2.1 and do not have the full
  102. Win32 SDK, then you will not have these files.  In that case you
  103. need to modify INOLE-A.MAK and INCINOLE.H to reference the
  104. Visual C++ versions of these files.
  105. Inside INOLE-A.MAK you'll find this block of statements:
  106.     !ifdef UNICODE
  107.     DEFUNICODE = -DUNICODE -D_UNICODE
  108.     TLBDEFU    = -DUNICODE
  109.     UILIB32    = oledlg.lib
  110.     #UILIB32    = mfcuiw32.lib
  111.     !else
  112.     DEFUNICODE = -DWIN32ANSI
  113.     TLBDEFU    =
  114.     UILIB32    = oledlg.lib
  115.     #UILIB32    = mfcuia32.lib
  116.     !endif
  117. Add a "#" comment to the lines containing oledlg.lib and
  118. remove the "#" comment from the lines containing mfcuiw32.lib
  119. and mfcuia32.lib.
  120. Inside INCINOLE.H you'll find this block of code:
  121.     #ifdef INC_OLEUI
  122.     #ifdef WIN32
  123.     #include <oledlg.h>
  124.     //#include <ole2ui.h>
  125.     #else
  126.     #include <ole2ui.h>
  127.     #endif
  128.     #endif
  129. Comment out the #include <oledlg.h> and remove the comment
  130. from #include <ole2ui.h>.
  131. Note that these changes are not encouraged as Windows NT 3.51 is
  132. a required upgrade for development purposes, and the Win32 SDK
  133. is necessary to compile this book's samples in their fully
  134. tested forms.
  135.         THE MIDL COMPILER FROM THE WIN32 SDK
  136. Besides the official system version of the OLE UI Library, the
  137. Win32 SDK for Windows 95 and Windows NT 3.51 is the only source
  138. at the time of writing for the Microsoft IDL compiler, known
  139. as MIDL.  This compiler, as well as various header files and
  140. import libraries from the Win32 RPC SDK, are only included
  141. with the full Win32 SDK itself.  Without the SDK you will not
  142. be able to compile and run several samples from Chapter 6
  143. and those from Chapter 9.  These samples require MIDL to generate
  144. custom OLE interfaces upon which these few samples depend.