home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-01 | 71.3 KB | 1,969 lines |
-
- IBM VisualAge for C++ for Windows - README
- =====================================================================
-
- IBM* VisualAge* for C++ for Windows** Version 3.5
- (C) Copyrights by IBM Corp and by others 1988, 1996.
- All rights reserved.
-
- US Government Users Restricted Rights - Use, duplication or disclosure
- restricted by GSA ADP Schedule Contract with IBM Corp.
-
- This file contains important information about the IBM VisualAge for
- C++ for Windows product. You should read the Introduction section
- before you install this product.
-
-
- Before You Install VisualAge for C++ for Windows
- ------------------------------------------------
- WARNING: The Trial copy of VisualAge for C++ on this CD-ROM,
- contains a time limiting device which is activated when you first
- install the program. This device will monitor your use of the
- program during the 60 day evaluation period. At the end of the
- evaluation period the device will prevent the program from
- operating. You should therefore take precautions to avoid any loss
- of data that might result.
-
-
- A copy of the License Agreement governing the use of this Trial Copy
- of VisualAge for C++ for Windows, can be found in a file called
- LICENSE.AGR in the root directory of this CD-ROM.
-
- Support
- -------
- For information about support, see:
-
- o The "Help !!!... how to get it" card.
-
- Or
-
- o The section called What If I Still Have Questions in the
- Frequently Asked Question (FAQ) information in the Online
- Information Notebook.
-
- NOTE: The User's Guide refers to a 60 day Getting Started Support
- Period for the U.S. and Canada. The Getting Started Support is no
- longer available. Similar technical support is available via the
- Personal Systems Support Line fee offering.
-
-
- Trademarks
- ----------
- The following terms are trademarks of International Business Machines
- Corporation in the United States or other countries or both:
-
- IBM
- DB2
- Open Class
- OS/2
- VisualAge
- WorkFrame
-
- Other terms used in this README, which may be denoted by a double
- asterisk(**), are trademarks or service marks of others.
-
- Excel, Windows, Windows NT, Win32, Win32s are trademarks of
- Microsoft Corporation.
- PostScript is a trademark of Adobe Systems Incorporated.
-
-
- Contents
- --------
- 1.0 INTRODUCTION
- 1.1 Contents
- 1.2 Prerequisites for Windows NT and Windows 95
- 1.3 Prerequisites for Windows 3.1
- 1.4 Installation
- 1.4.1 Important Note - Before You Install On Windows 95
- 1.4.2 Installing This Product
- 1.4.3 Known Problems During Installation
- 1.4.4 Known Problems During Deinstallation on Windows NT
-
- 2.0 LATE-BREAKING NEWS
- 2.1 License Information Notes
- 2.2 General
- 2.2.1 Windows NT
- 2.2.2 Windows 95
- 2.3 Compiling and Linking
- 2.3.1 Usage Notes
- 2.3.2 Restrictions
- 2.3.3 Known Problems
- 2.4 Working with Resources
- 2.4.1 Usage Notes
- 2.4.2 Known Problems
- 2.5 Using the User Interface Class Libraries
- 2.5.1 Portability Differences between Windows and OS/2
- 2.5.2 Restrictions and Known Problems
- 2.5.3 Win32s Information
- 2.5.4 Specific Class Information
- 2.6 Using the Data Type and Exception Class Libraries
- 2.6.1 Usage Notes
- 2.6.2 Factors Affecting Performance With IString
- 2.7 Using the Collection Class Libraries
- 2.7.1 Restrictions
- 2.8 Using the Compound Document Framework Class Libraries
- 2.8.1 Installation On Windows NT
- 2.8.2 Usage Notes
- 2.8.3 Restrictions
- 2.9 Using the Editor
- 2.9.1 Usage Notes
- 2.9.2 Known Problems
- 2.10 Using WorkFrame
- 2.10.1 Differences from OS/2 and Restrictions
- 2.10.2 Usage Notes
- 2.10.3 Known Problems
- 2.11 Using the Visual Builder
- 2.11.1 Known Problems and Restrictions
- 2.12 Debugging
- 2.12.1 Prerequisites for Win32s
- 2.12.2 Usage Notes
- 2.12.3 Known Problems on Windows NT and Windows 95
- 2.13 Using the Performance Analyzer
- 2.13.1 Usage Considerations
- 2.13.2 Restrictions and Known Problems
- 2.14 Using the Data Access Builder
- 2.14.1 Prerequisites
- 2.14.2 Usage Notes
- 2.14.3 Creating a SOM library of Multiple Classes
- 2.14.4 Features
- 2.14.5 Known Problems
- 2.14.6 Known Problems on DB2 That Affect the Data Access
- Builder
- 2.14.7 Using the Data Access Builder with the AS/400
- 2.15 Using the Browser
- 2.15.1 Known Problems
- 2.15.2 Permanent Restrictions
- 2.16 SOM
- 2.16.1 Known Problems
- 2.17 Developing Applications For Win32s
- 2.17.1 Building Applications for the Win32s Environment
- 2.17.2 Running Win32s Applications on Windows 3.1
- 2.17.3 Usage Notes
-
- 3.0 SAMPLES
- 3.1 General Information
- 3.1.1 Usage Notes
- 3.2 Data Access Builder Samples
- 3.2.1 Running the Samples on Win32s
- 3.3 SOM/WorkStation DSOM Samples
- 3.3.1 Known Problems and Restrictions
-
- 4.0 DOCUMENTATION
- 4.1 Printing
- 4.1.1 Known Problems With Printing
- 4.1.2 How to Print
-
-
- 1.0 Introduction
-
- The VisualAge for C++ for Windows product runs on Windows NT** on an
- Intel system, and runs on Windows 95. The product generates code that
- runs on Windows NT, Windows 95, and Windows 3.1 using Win32s.
-
- Unless otherwise described, Windows refers to Windows NT and Windows
- 95.
-
-
-
-
- 1.1 Contents
-
- The contents of this product are:
-
- o Compiler (ICC)
-
- o Linker (ILINK)
-
- o Tools and utilities for defining and creating Windows resources,
- such as dialogs and bitmaps
-
- o Tools and utilities for creating and displaying online help text
-
- o Message compiler
-
- o System header files and libraries
-
- o Library Manager (ILIB)
-
- o Open Class Library, header files, and DLLs for:
-
- - Data Type and Exception classes
-
- - Collection classes
-
- - User interface classes
-
- - Compound Document Framework classes
-
- o Editor
-
- o WorkFrame
-
- o Visual Builder
-
- o Debugger
-
- o Performance Analyzer
-
- o Data Access Builder
-
- o Browser
-
- o SOM WorkStation and SOM Developer's Toolkit Version 2.1
-
- o Publications in online and PostScript format
-
- o This product also supports remote debugging to a Win32s
- workstation.
-
-
- 1.2 Prerequisites for Windows NT and Windows 95
-
- o Windows NT 3.5.1 is required. This product will not run on
- earlier versions of Windows NT.
-
- Or
-
- o Windows 95
-
- o The disk space required for Windows NT and Windows 95 is below.
-
- - Minimal install of the product requires 48MB.
-
- - The entire product including the documentation requires 370MB.
- The Installation Guide incorrectly states the required disk
- space.
-
-
- 1.3 Prerequisites for Windows 3.1
-
- o Windows 3.1 with Win32s 1.3 installed. Win32s code is supplied
- with this product.
-
- o Runtime files need to be copied from your Windows NT or Windows 95
- system.
-
- Refer to the Developing Applications for Win32s section for
- details about the files you need.
-
- o 10 MB of disk space for the runtime files.
-
-
- 1.4 Installation
-
- This section describes important information about installing the
- product.
-
- For details about installation and deinstallation, refer to the
- Installation Guide. The Guide is shipped in hardcopy, and it is
- available online in the Help pulldown from any component, such as
- WorkFrame or the Browser. Select At a Glance in the Help pulldown.
-
-
- 1.4.1 Important Note - Before You Install On Windows 95
-
- This section describes what you need to do before you install the product
- on Windows 95.
-
- Required Tasks Before You Install the Product
- ---------------------------------------------
-
- Before you install, you must increase the system environment size.
-
- The VisualAge for C++ for Windows product updates a number
- of system environment variables during installation and
- the default system environment size is too small.
-
- The required changes are described below.
-
- C:\CONFIG.SYS change
- --------------------
-
- Use the editor of choice to add the following line to your
- C:\CONFIG.SYS file. Create the file with this
- line if the file does not exist.
-
- SHELL=C:\WINDOWS\COMMAND.COM /p /e:20000
-
- This line sets the environment size to 20,000 bytes, which
- is sufficient for the VisualAge for C++ product. If
- you have other products that use a significant amount of
- environment space, you may need to increase this value. You
- may also want to use a smaller value on systems that are
- constrained by memory.
-
- This change will set the environment size for programs run
- directly from folders.
-
- NOTE: The above assumes that Windows 95 was installed in
- the C:\WINDOWS directory. If you installed in
- another directory, substitute the directory
- name.
-
- MS-DOS Prompt change
- --------------------
-
- Start an MS-DOS Prompt. If you are using the Start button,
- select 'Programs' and then 'MS-DOS Prompt'. Open the
- MS-DOS Prompt Properties window by doing one of the following:
-
- - Opening the system menu by clicking on the MS-DOS icon
- at the top-left corner of the MS-DOS Prompt, and then
- selecting the 'Properties' item
- Or
- - Selecting the 'Properties' icon on the Toolbar if the
- Toolbar is active.
-
- Switch to memory page by selecting the 'Memory' tab at
- the top. Within the 'Conventional memory' area is a
- drop-down entry field. Click on the arrow, scroll down
- until the '4096' entry is visible and select it. Now
- click on the OK button at the bottom of the Properties
- sheet.
-
- This change sets the environment size for each MS-DOS
- prompt started.
-
-
- 1.4.2 Installing This Product
-
- Refer to the Installation Guide for details. The Guide is shipped in
- hardcopy, and it is available online in the Help pulldown from any
- component, such as WorkFrame or the Browser. Select At a Glance in
- the Help pulldown.
-
- The default path where the files are installed is IBMCPPW.
-
-
- 1.4.2.1 Installing Files on Windows 3.1 for Win32s Applications
-
- Refer to the Developing Applications for Win32s section for details
- about the files you need.
-
-
- 1.4.2.2 Installing Files for Compound Document Framework Classes
-
- Refer to the section called Using the Compound Document Framework
- Class Libraries for information about installation.
-
-
- 1.4.3 Known Problems During Installation
-
- o We recommend that you do not minimize the install window during
- the installation. The setup screen sometimes freezes if it is
- minimized while the installation is running. If the hard drive
- runs out of space, you cannot continue with the installation
- because when you restore the window, the error dialog is no longer
- shown.
-
- You need to ensure you have enough hard disk space available, and
- then restart the installation.
-
-
- 1.4.4 Known Problems During Deinstallation on Windows NT
-
- o On Windows NT, a problem exists when you try to deinstall the
- product after you have more than one install image on the same
- machine. This applies only to a full install of the product onto
- your hard disk. You can successfully deinstall one image, and you
- receive an error message when you try to deinstall the second
- image. Some files needed by the deinstall program have been
- deleted. Copy all the files from the CD-ROM directory called
- IBMCPPW\INSTALL\UTILS, to the \WINNT35\VACPPINS directory where
- the operating system is installed. Run the deinstall again.
-
-
- 2.0 Late-Breaking News
-
- This sections describes late-breaking news and restrictions.
-
-
- 2.1 License Information Notes
-
- The IBM EVALUATION AGREEMENT contains the terms and conditions for
- redistributing files. The agreeement can be found in a file
- called LICENSE.AGR located in the root directory of the CD-ROM.
-
- Note that currently you cannot rename CPPWOT3.DLL and ILIBIPF32.DLL.
-
-
- 2.2 General
-
- This section describes news and restrictions that apply to more than
- one component in the product.
-
- o The Online Information notebook is more current than the
- PostScript files and the printed books.
-
-
- 2.2.1 Windows NT
-
- o Windows NT has a known problem in screen saver code. When the
- used environment space reaches a certain size, the WINLOGON.EXE
- program traps. When this program traps, Windows NT stops the
- machine. Only a power off/on sequence can clear this. If you are
- using the Screen Saver feature, you are strongly encouraged to
- disable the Screen Saver feature either immediately or if you
- encounter this problem in the future.
-
-
- 2.2.2 Windows 95
-
- o Sometimes the VisualAge for C++ tools have unpredictable behavior
- when the Windows 95 system experiences virtual memory problems.
- Virtual memory problems such as full swap space can produce system
- lockups and abnormal terminations without system notification. It
- is recommended that you run the VisualAge for C++ tools with at
- least 40MB of free space available for your swap file.
-
- o When you bring up the MS-DOS command prompt and type in the letter
- of the drive where you installed the product, you are placed into
- the following path.
-
- drive:\IBMCPPW\IBM VA FOR C++ FOR WINDOWS
-
- The path is not correct. Change the directory to the appropriate
- working directory.
-
- o Sometimes the Windows 95 pointer is displayed as both a pointer
- and an hour glass. You can proceed to do other tasks. It appears
- that you can not take any action until the hour glass disappears,
- but this is not the case.
-
- o The PSTAT and WinPerf programs are not available.
-
-
- 2.3 Compiling and Linking
-
- This section contains important information about compiling and
- linking.
-
-
- 2.3.1 Usage Notes
-
- o System Header Files and Libraries
-
- The system header files have been modified to work with the
- compiler. The libraries are shipped with no changes from the
- versions supplied by Microsoft.
-
- o Working with NMAKE
-
- If nmake finds more than one rule in a makefile that can be used
- to build a certain target, it will use the rule found last.
-
- o By default, VisualAge for C++ links to the KERNEL32.LIB system
- import library. Any other system import libraries must be linked
- manually. For a list of the mapping of Windows APIs to system
- import libraries, refer to the file called WINAPI.TXT in the
- \IBMCPPW\HELP directory on the CD-ROM.
-
- There are entries that are identical except one ends with "A" and
- other ends with "W". For example, there is a windows API called
- StartService. In the WINAPI file there are two entries -
- StartServiceA and StartServiceW. You can ignore the trailing A or
- W.
-
- o Structured exception handling is not ported to VisualAge for C++
- on other platforms. You should avoid using structured exception
- handling in applications you want to port.
-
-
- 2.3.2 Restrictions
-
- o In Windows 95 only, nmake does not handle filenames that contain
- spaces. You may need to use the short version of the filename,
- which you can find using the "dir" command.
-
- o Redirection on Win32s using redirect.obj is not supported with the
- subsystem library.
-
- o If you link statically, do not terminate your process with
- ExitThread or ExitProcess APIs, because the run-time termination
- will not occur, and buffers will not be flushed. If you link
- dynamically, the same restriction applies only to Windows 95 and
- ExitThread. For portability, always use the exit library function.
-
- o Do not pass file handles between different library environments.
- For example, do not open a file in the EXE (with fopen, open, or
- any other library function) and then pass it to a DLL if both of
- them link statically to the run time.
-
- o If you use Thread Local Storage in C++, a restriction in Windows
- 95 can affect you. No initialization or termination code is run
- for variables within a thread.
-
- __thread int i = 5; /* OK, statically initialized */
- __thread int j = f(); /* f() not called in Windows 95*/
-
- In both Windows NT and Windows 95, the order of thread termination
- is not predictable. In a DLL, this means the following.
- PROCESS_DETACH notification can occur on a thread other than
- thread 1. Termination code registered with the atexit() function,
- as well as destructors of static C++ objects, will run on the
- thread in which the PROCESS_DETACH notification occurs.
-
- o The library math functions may sometimes fail to detect an invalid
- input argument, for example a negative value for the log()
- function. This may cause a floating point exception that would
- terminate the program on Win32s. If you plan to run your
- application on this platform, ensure that the argument is valid.
-
-
- 2.3.3 Known Problems
-
- o The C++ compiler may not work when you are compiling C++ source
- that is located on the Z: drive.
-
- The C++ compiler may terminate with a General Protection Fault and
- a Register Dump. This problem can be avoided by moving the source
- to a directory that is not located on the Z: drive or by using the
- /Ft- command-line option.
-
- o The ILINK option /OPTFUNC will incorrectly remove functions that
- are only referenced from a COFF object. This is likely to be a
- problem when building a DLL but unlikely when building an EXE.
-
- o Use of the ILINK option /STUB:xxx without the argument (":" and
- file name) will cause a trap.
-
- o According to the documentation, ILINK will search directories
- given on the command line before searching directories specified
- by the LIB environment variable. Currently the reverse is true.
-
-
- 2.4 Working with Resources
-
- This section contains important information about working with
- resources.
-
-
- 2.4.1 Usage Notes
-
- o The additional command-line options for ibmpcnv are:
-
- -B : Input file is a bitmap
- -C : Input file is a cursor
- -I : Input file is an icon
- -P : Input file is a pointer
-
- If -D is specified, the above options are ignored and ibmpcnv
- converts files with .ico, .bmp, .cur, .ptr extension in the
- "filein" dir. The above options are added because ibmpcnv is
- sensitive to file suffixes. It only convert files with .ico,
- .bmp, .cur, .ptr suffixes. It uses the suffix to determine the
- type of resource image.
-
- o The IBM Resource Compiler (IRC) has the command line option -k
- codepageId to support compiling resources in the specified
- codepage.
-
- o To view books in .INF format from the command line use iview which
- is a 32-bit upgrade of the xview tool referenced in the IPF User's
- Guide and IPF Programmer's Guide and Reference. In addition
- libipfx.dll has been upgraded to libipf32.dll.
-
-
- 2.4.2 Known Problems
-
- o Message Compiler Bug
-
- Comments are allowed in the input message (."mc") file. Comments
- must begin with a semicolon (;) in the first column and are
- terminated by the end of the line.
-
- As the User's Guide states, comments that exist by themselves on a
- line are copied, as is, to the output include (."h") file.
- However, the semicolon is not converted to the C end-of-line
- comment syntax (//). The semicolon is stripped from the beginning
- of the comment line.
-
- You will have to manually update your include file to add the
- slashes to indicate to the compiler that the line is a comment.
-
- o The resource compiler cannot decompile a binary resource file with
- a MENUEX resource defined in it. The resource workshop will treat
- the resource as a MENU resource. When you see "__VERSION 1" and
- "__OFF 4" defined under the MENU resource, it means that it is a
- MENUEX resource. The menu items may not be decompiled correctly
- in this case.
-
- o In the DBCS environment, when you save a file as a resource file,
- the resource workshop will work very slowly. To improve this, set
- the "Foreground and Background Application Equally Responsive" in
- the Tasking setup under System setup in the Control Panel.
-
- o If you install the product to the root directory of a partition,
- such as E:, then the IPF Compiler will not work unless you make
- the following changes to your environment:
-
- - On Windows 95, the variable "IPF_PATH32" is set to "E:\" in
- the autoexec.bat file. Remove the backslash and change the
- setting to "E:".
- - On Windows NT, the variable "IPF_PATH32" is set to "E:\" in
- the registry. Remove the backslash and change the setting to
- "E:". You can use System tool in the Control Panel window.
-
- o If you have coded empty help resources you need to add a line of
- null terminators to ensure the proper processing of these tags.
- See the following examples.
-
- 100 HELPTABLE
- {
- 10, ID_SUBTABLE, 20
- }
- ID_SUBTABLE HELPSUBTABLE
- {
- 0,0 /* Null termination string here for empty table */
- }
-
- 100 HELPTABLE
- {
- 0,0,0 /* Null termination string here for empty table */
- }
-
-
- 2.5 Using the User Interface Class Libraries
-
- The following information refers to the User Interface Classes
- contained in the IBM Open Class Library. These notes are in addition
- to what is documented in the Open Class Library User's Guide and the
- Open Class Library Reference manuals.
-
-
- 2.5.1 Portability Differences between Windows and OS/2
-
- Refer to the Portability section of the Open Class Library User's
- Guide and the platform support information contained in the function
- descriptions of the Open Class Library Reference, Volumes I - IV.
-
-
- 2.5.2 Restrictions and Known Problems
-
- This section describes the restrictions and known problems, including
- documentation problems.
-
-
- 2.5.2.1 Colors
-
- The following member overrides were added to query and set the
- background color of the font and file dialogs:
-
- In ifontdlg.hpp:
-
- virtual IColor backgroundColor () const;
- virtual IFontDialog &setBackgroundColor (Const IColor& color);
-
- In ifiledlg.hpp:
-
- virtual IColor backgroundColor () const;
- virtual IFileDialog &setBackgroundColor (Const IColor& color);
-
-
- 2.5.2.2 Graphics
-
- The set of pen types, styles, and patterns that can be set through
- IGraphicBundle is limited on Win32s and Windows 95. On these
- environments, the best available approximation is chosen.
-
- Due to a limitation in the Graphic Device Interface (GDI) on Windows
- 95, only the pen patterns IGraphicBundle::filled and
- IGraphicBundle::hollow are supported.
-
-
- 2.5.2.3 Multimedia
-
- USE OF IMMDEVICE::MODE IN NOTIFICATION HANDLERS
-
- As part of its execution, IMMDevice::mode generates a notification
- event. When writing a notification handler, you should keep this in
- mind. Consider the following code, which is part of a
- dispatchNotificationEvent routine:
-
- IMMNotifyEvent* notifyEvent =
- (IMMNotifyEvent*)(event.eventData().asUnsignedLong());
-
- if (notifyEvent->command() == IMMNotifyEvent::play)
- {
- panel.playbtn.unlatch();
- if (panel.playerDevice == CDID)
- if (panel.cdPlayer->mode() == IMMDevice::playing)
- {
- panel.playbtn.latch();
- }
- }
-
- In this example, the mode function is called within the if clause.
- But consider the following, where it is moved outside:
-
- IMMNotifyEvent* notifyEvent =
- (IMMNotifyEvent*)(event.eventData().asUnsignedLong());
- if (notifyEvent->command() == IMMNotifyEvent::play)
- {
- panel.playbtn.unlatch();
- }
- if (panel.playerDevice == CDID)
- if (panel.cdPlayer->mode() == IMMDevice::playing)
- {
- panel.playbtn.latch();
- }
-
- This causes the following set of events to occur:
-
- 1. The "mode()" command generates a notify event
- 2. The notify event re-enters "dispatchNotificationEvent()"
- 3. Since the "mode()" command is not inside the if clause, it is
- executed again
- 4. Loop through steps 1-3 recursively until a stack overflow occurs
-
- Care should be taken when using the "mode()" command in this
- situation.
-
- RECORDING IN THE 32-BIT WINDOWS ENVIRONMENT
-
- In 32-bit Windows, the only device that supports recording is
- WAVEAUDIO (IMMWaveAudio). In addition, certain recording parameters
- can only be specified when opening a new data file for recording.
- Once recording has begun, they cannot be altered. This also applies
- when adding recorded material to an existing file. The IBM Open Class
- functions that get or set these parameters are listed below:
-
- o IMMConfigurableAudio::setBytesPerSecond
- o IMMConfigurableAudio::setBitsPerSample
- o IMMConfigurableAudio::setBlockAlignment
- o IMMConfigurableAudio::setChannels
- o IMMConfigurableAudio::setFormat
- o IMMConfigurableAudio::setSamplesPerSecond
- o IMMConfigurableAudio::bytesPerSecond
- o IMMConfigurableAudio::bitsPerSample
- o IMMConfigurableAudio::blockAlignment
- o IMMConfigurableAudio::channels
- o IMMConfigurableAudio::format
- o IMMConfigurableAudio::samplesPerSecond
-
- If the setters are used on a device that already contains recorded
- material, an exception is thrown. The use of either the setters or
- getters on a device that does not support recording (for example, any
- device other than IMMWaveAudio in 32-bit Windows) throws an exception.
-
- Use IMMDevice::supportsRecord to determine if the getters can be used.
- It is recommended that you maintain a "new record file" flag for use
- of the setters. Once recording has initiated, this flag should be set
- to false and access to the setters should be disabled.
-
- NEW MEMBER FUNCTIONS IN IMMAUDIOCD
-
- The following functions were added to IMMAudioCD, but are not in the
- product documentation:
-
- The following function returns the current table of contents entry.
-
- public:
- unsigned long IMMAudioCD::currentContentsEntry() const
-
- The following function returns the current track.
-
- public:
- unsigned long IMMAudioCD::currentTrack() const
-
- 32-BIT WINDOWS SUPPORTED MEMBER FUNCTIONS IN IMMPLAYABLEDEVICE
-
- The following functions in IMMPlayableDevice are listed as not
- supported under 32-bit Windows, when in fact they are:
-
- public:
- IMMPlayableDevice&
- IMMPlayableDevice::startPositionTracking(const IMMTime &time,
- CallType call)
- public:
- IMMPlayableDevice&
- IMMPlayableDevice::stopPositionTracking(CallType call)
-
- USE OF IMMDIGITALVIDEO::SETDESTINATION
-
- When using ICoordinateSystem::originLowerLeft, the setDestination
- rectangle specified is mapped relative to the lower-left corner of the
- video window. This may cause clipping of the video image.
-
- COMPOUND DEVICES IN 32-BIT WINDOWS
-
- In general, 32-bit Windows MCI compound devices (those that require a
- file for data, such as WAVEAUDIO, SEQUENCER, and DIGITALVIDEO) have
- limited function until they are loaded with a file. Because of this,
- it is recommended that actions on these devices be limited until a
- file is loaded, using the IMMFileMedia::load member function.
-
- MCI_LOAD EMULATION
-
- In 32-bit Windows, a compound device's device element (data file) can
- ______________
- only be specified when the device is opened. The MCI_LOAD function is
- not supported, so the device element cannot be changed after that
- time.
-
- The following protected virtual functions are used to emulate the
- MCI_LOAD command, allowing an IBM Open Class multimedia object change
- its filename:
-
- virtual IMMDevice
- &saveDeviceSettings (),
- &restoreDeviceSettings (Boolean newRecordMode = false);
-
- For compound devices, when IMMFileMedia::load is called, the following
- events occur to emulate MCI_LOAD:
-
- 1. All classes in the objects's hierarchy are requested to save
- pertinent parameters or settings using saveDeviceSettings.
-
- 2. The current device associated with the object is closed.
-
- 3. A new device is opened with the new filename, and is associated
- with the object.
-
- 4. All classes in the object's hierarchy are requested to restore
- pertinent parameters or settings using restoreDeviceSettings.
-
- Derived classes should use these classes as necessary. The final
- statement before the return should be a call to the parent's same
- function, allowing all inherited classes to save or restore settings.
-
- IMMDEVICE::SETVOLUME LIMITATION
-
- The 32-bit Windows MCI does not support MCI_OVER so the "over"
- parameter is ignored.
-
- IMMDEVICE::SENDCOMMAND LIMITATION
-
- The 32-bit Windows mciSendCommand function does not support the
- passing of an arbitrary user parameter, so this capability is not
- available.
-
-
- 2.5.3 Win32s Information
-
-
- 2.5.3.1 Cursor Limitations on Win32s
-
- 16-bit Windows supports only monochrome cursors. If a container has
- monochrome icons, drag and drop uses default OLE cursors for a drag
- image.
-
-
- 2.5.3.2 Fly-over Help Limitations on Win32s
-
- Due to a Windows limitation, fly-over help does not work properly with
- any composite control containing an entry field, such as
- IMultiLineEdit, IEntryField, spin buttons, and combination boxes.
-
-
- 2.5.3.3 Dynamic Data Exchange (DDE) Limitations on Win32s
-
- The following functions are not supported for DDE on Win32s platforms:
-
- o IDDEClientConversation::beginHotLink
- o IDDEClientConversation::endHotLink
- o IDDETopicServer::hotLinkUpdate
-
- You can use these member functions to establish a DDE hot link but
- subsequent data requests and hot link updates may be corrupted.
-
-
- 2.5.3.4 Message Box Limitations on Win32s
-
- Due to a Windows limitation, specifying the desktop window as the
- owner of an IMessageBox object causes your desktop window to be
- disabled. This disables the mouse, causing any mouse button clicks to
- result in a beep. You must reboot your computer to enable the mouse
- again.
-
- Ensure the owner of your IMessageBox is a window other than the
- desktop.
-
-
- 2.5.4 Specific Class Information
-
-
- 2.5.4.1 IAcceleratorKey and IAcceleratorTable
-
- These classes are not supported on the Win32s platform.
-
- Accelerator keys have the following restrictions on Windows NT and
- Windows 95:
-
- o Assigning a key to run an application command vs. a system command
- is ignored. The distinction on the type of command event
- generated when the key is pressed is determined by the Windows
- presentation system based on the command identifier. If the
- system menu contains an item with the same identifier, the
- accelerator key generates a system command event. Otherwise, it
- generates an application command.
-
- o Assigning a key to generate a help request causes the key to
- generate an IC_ID_HELP command. IFrameHandler processes the
- command as a help request. You must do one of the following:
-
- - The accelerator table with this key must be assigned to a
- canvas, container, or frame window for the IFrameHandler to
- process this command.
- Or
- - You must create a command handler that sends the command event
- up the chain of the owner window, and attach this handler to
- the window with the accelerator table.
-
-
- 2.5.4.2 IBaseComboBox
-
- Horizontal scrollbars are only supported for simple combo boxes in
- Windows NT newshell applications. This is due to a Windows bug. They
- are supported for all combo box types in Windows 95 applications.
- Horizontal scrollbars are not supported in Windows NT oldshell
- applications.
-
-
- 2.5.4.3 IContainerControl
-
- When calling IContainerControl::refresh after calling
- IContainerControl::setRefreshOff, refresh should be called with a true
- parameter. This solves any painting problems that occurr after
- calling IContainerControl::setRefreshOff.
-
-
- 2.5.4.4 IContainerControl::ColumnCursor
-
- The documentation for this class in the Open Class Library Reference
- is incorrect as the columns are iterated in the expected order. The
- Windows information for this class should then read as follows:
-
- WINDOWS INFORMATION: The native Windows container has a required
- first column. If an IContainerColumn object is not inserted for this
- required column, the cursor does not iterate them. See the
- IContainerColumn documentation for more details.
-
-
- 2.5.4.5 IFileDialog
-
- The SAVE AS DIALOG fails to save a file to a network drive under the
- following circumstances:
-
- 1. Windows 95 environment
- 2. File already exists
- 3. Network drive is an HPFS drive
-
- The error that is reported states that the path does not exist.
- However, this scenario does work when the network drive is a FAT
- drive.
-
- An ICommandHandler cannot be used to handle events for an IFileDialog.
- Currently, command and systemCommand events are not passed to handlers
- but are routed directly to the default file dialog procedure.
-
-
- 2.5.4.6 IFont
-
- If an IFont object is being used for a printer, plotter, FAX, or other
- non-display device, some of the attribute-setting functions assume a
- display presentation space (device context) for use in recalculating
- the font metrics. There is no way to pass a presentation space as a
- parameter to the these functions. The result is that pointSize
- returns an incorrect size for the actual presentation space afterward.
- There is no problem for IFont objects used with display presentation
- spaces.
-
- The IFont member functions involved are listed below:
-
- setBold
- setItalic
- setUnderscore
- setAllEmphasis
- useBitmapOnly
- setDirection
-
- A solution is to save the pointSize across a call to one of these
- functions. This solution is only needed if the font is not being used
- for a display. For example:
-
- size = pointSize();
- setBold();
- setPointSize(size, printerPs);
-
-
- 2.5.4.7 IInfoArea
-
- Menu items that have a submenu do not display text in an information
- area.
-
-
- 2.5.4.8 IKeyboardEvent
-
- The IKeyboardEvent::sysRq enumerator is not supported on the Windows
- platform.
-
-
- 2.5.4.9 IMultiLineEdit
-
- Due to a 16-bit Windows limitation, importing a large file into a MLE
- does not work properly. Windows 95 implements some window management
- features in 16 bits. The use of 16 bits imposes some restrictions on
- parameters in functions and messages and places limits of about 64
- kilobytes of text.
-
-
- 2.5.4.10 IThread
-
- If you are building a statically linked (Gd-) multithreaded
- application for Windows 95, restrictions apply. You should use only
- the IThread constructors to create threads that contain IWindow
- objects or are referenced using IThread. You should avoid using the
- CreateThread 32-bit Windows function or the beginthread C library
- function to create threads. The following IThread constructor may not
-
- function correctly when applied to a thread created with the
- CreateThread or beginthread functions:
-
- IThread ( const IThreadId& threadID,
- const IThreadHandle& threadHandle =
- IThreadHandle::noHandle );
-
- This restriction does not apply to Windows NT applications or to
- dynamically linked Windows 95 applications.
-
-
- 2.6 Using the Data Type and Exception Class Libraries
-
-
- 2.6.1 Usage Notes
-
- A new capability has been added to ITrace to enable capturing trace
- output to a file. To direct ITrace output to a file, set the
- following environment variables before starting the application.
-
- SET ICLUI_TRACETO=FILE <- causes the next environment to
- be checked and used
- SET ICLUI_TRACEFILE=<file> <- trace output will be place into
- <file>
-
-
- 2.6.2 Factors Affecting Performance With IString
-
- When the IString class is enabled for internationalization,
- performance may be degraded. Factors that affect performance are:
-
- o Strings that are thousands of bytes long
- o Frequency of string parsing and indexing.
-
-
- 2.7 Using the Collection Class Libraries
-
-
- 2.7.1 Restrictions
-
-
- 2.7.1.1 Copying Key Collection Class objects
-
- If you use your own copy constructor to add an object to a key
- collection, be sure that the key of the object is not changed.
- Changing the key can cause unpredictable results, including program
- traps. In general, it is recommended that you use the default copy
- constructor, rather than defining your own.
-
- The Key collection classes can be recognized by the word "key" in
- their name. For example IKeyBag and IKeySetAsBSTTree.
-
-
- 2.8 Using the Compound Document Framework Class Libraries
-
- This section describes important information about the the Compound
- Document Framework Class Libraries.
-
-
- 2.8.1 Installation On Windows NT
-
- To insert a CDF server into an OLE container or to activate a CDF
- server within an OLE container, you must do the following. Set the
- system path to point to the DLLs in the \IBMCPPW\BIN directory.
-
-
- 2.8.2 Usage Notes
-
- o You need the following program:
-
- - UUIDGEN.EXE from the Win32 Development Toolkit. It is in the
- \IBMCPPW\SDK\BIN directory.
-
- o If your application model needs to stream input or output from an
- ICLUI or user-defined class which does not define stream
- operators, you can define your own operators. When you define
- operators you need to include a prototype statement in your .HPP
- file, or you will receive the message about INCLUDE\IBASSTRM.C.
-
- For example, if the .CPP file contains:
-
- IBaseStream& operator>>=(IPoint pt, IBaseStream& strm) {....}
-
- The .HPP file needs to contain:
-
- IBaseStream& operator>>=(IPoint pt, IBaseStream& strm);
-
-
- 2.8.3 Restrictions
-
- o The Compound Document Framework does not support building or
- running Win32S applications.
-
-
- 2.9 Using the Editor
-
- This section contains important information about using the Editor.
-
-
- 2.9.1 Usage Notes
-
- o In Windows 95, when entering characters using the Alt key +
- numeric pad, use Alt + 0 + the character code for the character
- you are entering.
-
- o In the Font selection window, some font selections will indicate
- the availability of extended font styles, such as Italic or Bold.
- The Editor ignores extended font style selections, and uses only
- the underlying (Regular) font. To set additional font effects,
- use the Token Attributes window, available from the Options
- pull-down menu.
-
- o If the Editor window does not appear, or it is unusable when it
- does appear, erase the LPEX.ini file, then restart the Editor.
- The LPEX.ini file can be found in the directory where Windows is
- installed.
-
-
- 2.9.2 Known Problems
-
- o When using the Editor on Windows 95, certain character effect
- combinations such as bold and italics may not be readable in some
- fonts or font sizes.
-
- o On Windows 95, you cannot use the Save As dialog to save to an
- existing file on a remote HPFS drive.
-
-
- 2.10 Using WorkFrame
-
- This section contains important information about using WorkFrame.
-
-
- 2.10.1 Differences from OS/2 and Restrictions
-
- o No project inheritance or Tool Setup is available. Actions
- (tools), and types are defined in the product solution file, which
- is called vacpp.iws.
-
- o WorkFrame does not support user defined types.
-
- o Environment variables can be defined through the Project Settings
- notebook.
-
- o Options defined by using the option dialogs are stored on a
- per-project basis in the options file for the project. The
- options file has the extension .iwo. You can access the option
- dialogs using the Options pulldown menu in a project view. If you
- delete the options file, you can recover by using the editor to
- create a new options file. Use the same file name with an
- asterisk for the extension. Then use the options dialogs to reset
- your options for the project.
-
- Other project specific information e.g. project settings, is kept
- on a per-project basis in the project's project file. The project
- file has the extension .iwp.
-
- o Note: You should not directly change the above configuration
- files, such as the *.iws, *.iwp, and *.iwo files.
-
- o No drag and drop is available
-
- o A details view of the project is not available, but icon and tree
- views are supported.
-
- o Monitored actions are implemented through the Editor rather than
- WorkFrame. The monitor is an Editor monitor, not a WorkFrame
- monitor.
-
-
- 2.10.2 Usage Notes
-
- o The IBUILD and IMKMK commands have been updated to remove the
- limit on the number of parameters they will accept. There is now
- NO restriction on the number of parameters for IBUILD and IMKMK.
-
-
- 2.10.3 Known Problems
-
- o In notebooks, the help that is displayed from the Help pushbuttons
- may depend on what has focus. If a notebook tab has focus,
- sometimes no help is displayed from the Help pushbutton. In most
- cases for the Options notebooks, holding down the left mouse
- button and pressing F1 over the notebook Help pushbutton will
- display general help.
-
- o Pressing F1 when focus is on a notebook tab sometimes changes
- notebook files instead of displaying help.
-
- o Keyboard navigation and accelerators don't work properly for some
- dialogs.
-
- o Opening options notebooks and changing options for two projects at
- the same time may cause problems.
-
- o If multiple .EXE files are selected to Run Monitored at the same
- time, only one of them will be run multiple times.
-
- o If the option to create a dependency file is specified, not all
- dependencies are put into this file; some are left in the
- makefile.
-
- o Occasionally when running on Windows 95, WorkFrame windows will
- not respond to the mouse. To correct this, click on the desktop
- and then click on the WorkFrame window again.
-
- o When you use WorkFrame for several hours, sometimes you receive a
- warning about low virtual memory. The log file for the monitor
- operations becomes too large. To avoid the problem, you need to
- exit from the project monitor window occasionally. The exit
- action erases the log file.
-
- o When you build and run applications that use HLP and INF files
- from WorkFrame, a problem exists. The application seems to build
- correctly. When you run the application, you receive a message
- saying that the HLP file and the INF file cannot be found. You
- need to do the following. In the WorkFrame settings, set the Help
- environment variable to point to the HELP subdirectory. Then
- build and run your application again.
-
-
- 2.11 Using the Visual Builder
-
- This section contains important information about using the Visual
- Builder.
-
-
- 2.11.1 Known Problems and Restrictions
-
- o Part files (.vbb) from the OS/2 release can be loaded and saved
- under this release, but part files saved in this release cannot be
- loaded in the OS/2 release.
-
- When you load an OS/2 part file, Visual Builder asks you if you
- want to convert it to the Windows format. If you answer YES to
- this message, the part file is converted and it will no longer be
- readable on OS/2. If you want to keep a copy of your OS/2 part
- files, back them up before loading them into the Windows release.
-
- o When using the native details-view container, you will have
- problems selecting container columns other than column 1 directly
- from the free-form surface. To edit the unreachable container
- columns, do the following:
-
- 1. Select the container.
-
- 2. Click mouse button 2. The contextual menu for the part
- appears.
-
- 3. Select VIEW PARTS LIST. The Parts List window appears.
-
- 4. Double-click the icon that represents the container column you
- want to edit. The settings window opens for the part.
-
- o If you use container columns in a native Windows container, set
- the container to details view only. Using any other container
- view might cause Visual Builder to close without warning, and you
- could lose unsaved updates to your part.
-
- o Situations exist where use of a native progress indicator
- sometimes causes the Builder to shut down. To avoid this problem,
- set the pmCompatible style to ON to use the CUA progress
- indicator.
-
- o Minor changes have been made to the Visual Builder User's Guide
- since it was printed. For the most current information, see the
- online version of the book. The sections affected are as follows:
-
- Starting Visual Builder
- Learning to Use Parts
- Constructing Containers and Notebooks
- Hints and Tips
-
- o Minor changes have been made to the Visual Builder Parts Reference
- since it was printed. For the most up-to-date information, see
- the online version of the book. Portability information has been
- added to include features that are unique to Windows or ignored by
- the Windows compiler.
-
-
- 2.12 Debugging
-
- This section contains important information about debugging.
-
-
- 2.12.1 Prerequisites for Win32s
-
- o Remote debugging on Win32s requires IBM TCP/IP for DOS Version
- 2.1.1 and above.
-
-
- 2.12.2 Usage Notes
-
- o To enable debug on demand, add the directory for your program to
- the PATH environment variable or start the program from its
- directory.
-
- To run debug on demand, enter the command:
-
- DOD path_name
-
- The User's Guide incorrectly states that you need to enter DOD
- path_name \idebug.
-
-
- 2.12.3 Known Problems on Windows NT and Windows 95
-
- o You cannot use the Step Over or Step Debug functions to step into
- a structured exception handling __finally block.
-
- o Attaching to the debugger itself causes unpredictable results.
-
- o For applications running under the debugger, asynch exception
- handling is disabled. If the application uses a signal to register
- an asynch handler, there is no way to detect the exception and
- invoke the handler.
-
- o Toggling breakpoints at an execution line clears all breakpoints
- on that line.
-
- o A stack entry is missed when you single step into a one line
- function, for example constructor code.
-
- o On Windows 95, the system hangs in one situation when a breakpoint
- is hit. The situation is when you are debugging a GUI application
- and you resize one of the windows of the application.
-
- o On Windows 95, multithread application requires closing the
- debugger (F3) twice for complete clean up.
-
- o On Windows 95, make sure all change address breakpoints are
- deleted before closing the debugger. The system hangs if any
- change address breakpoint remains on the stack when the program
- being debugged runs to completion.
-
- o On Windows 95, not all exception signals are passed on to the
- debugger. For some illegal operations, the debugger is not able to
- catch the exception for the offending application.
-
- o Closing the application using the system menu, while the
- application is stopped by the debugger, produces unpredictable
- results on Windows 95.
-
- o Due to system limitation on Windows95, the debugger is not able to
- step over certain system services such as WaitForSingleObject.
-
- o Some hexadecimal values may not be displayed correctly in the
- Character column of the Storage window. To fix this, set the
- LC_ALL environment variable to the ANSI locale (codepage) which
- corresponds to the country/language setting of your machine.
-
- For example, for US English:
-
- SET LC_ALL=En_US.IBM-1252
-
- You can find the correct locale name in the "Compiled locales
- supplied with VisualAge for C++" table in the Programming Guide.
- You should use the locale name whose number is in the range of
- 1250 to 1257.
-
-
- 2.13 Using the Performance Analyzer
-
- This section contains important information about using the
- Performance Analyzer.
-
-
- 2.13.1 Usage Considerations
-
- o If you are running a multithreaded application that creates
- threads after existing threads of execution have been terminated,
- the operating system may reuse the thread numbers that
- corresponded to the terminated threads. If this occurs, the
- Performance Analyzer may report fewer threads than were actually
- executed.
-
- o If the object file containing the first executable function is not
- traceable, part or all of your application will run before the
- TRACE GENERATION window is displayed. If this is the case, the
- Performance Analyzer will run to the first traceable function,
- halt execution, and then display the TRACE GENERATION window.
-
- o To enable the Performance Analyzer in WorkFrame do the following:
-
- - The best way to enable the performance analyzer is to use the
- option in Build Smarts. This will correctly set up both the
- compiler and linker options.
-
- - Enabling the option in the compiler dialog will only turn on
- the compiler /Gh option, but will not add the required
- CPPWPA3.OBJ at link time.
-
-
- 2.13.2 Restrictions and Known Problems
-
- o File accesses cannot be traced.
-
- o The first function traced (usually main) cannot be set as a
- trigger or disabled.
-
- o Six system calls used by the Performance Analyzer are not traced
- in your program when the _KERNEL.DLL intercept library is used.
- These are: InitializeCriticalSection, EnterCriticalSection,
- LeaveCriticalSection, LoadLibrary, GetProcAddress, and
- GetCurrentThreadId.
-
- o After generating a trace file, you may not be able to erase or
- rebuild your executable while the Performance Analyzer is running.
- You may have to exit the Performance Analyzer and then rebuild
- your executable.
-
- o If your program contains a function preceded by an underscore (_),
- the Performance Analyzer will display the function without the
- underscore in the trace file.
-
- o The pattern recognition feature (on the CALL NESTING diagram) has
- the following limitations:
-
- - The Performance Analyzer only searches for patterns in the
- first 32,768 events in the selected thread.
- - The maximum number of patterns for which the Performance
- Analyzer searches is 8191.
-
- When the Performance Analyzer reaches either of these limits, it
- stops searching for patterns.
-
- o If your EXE is not in the current directory or in a directory
- specified by the PATH environment variable, and it uses a DLL that
- is in the current directory, then the Performance Analyzer cannot
- __
- load the program. Instead the operating system displays an error
- message stating "Unable to locate DLL". The error message shows
- the path that the operating system searched, which includes the
- current directory.
-
- o If your DLL is not in the current directory or in a directory
- specified by the PATH environment variable, the functions in your
- DLL will be traced; however, they will not be resolved. In the
- trace file, they will appear as addresses instead of names.
-
- o The compiler should only produce profile hooks for user-defined
- functions. Currently the compiler produces profile hooks for
- several compiler-generated functions in addition to user-defined
- functions. These compiler-generated functions will appear in the
- trace file as unrecognizable names made up of random characters.
-
- o If you are analyzing a C++ program in the DYNAMIC CALL GRAPH or
- STATISTICS diagram and select PROJECT > EDIT FUNCTION while a
- class or an executable is highlighted, the Performance Analyzer
- will not invoke the editor. The Performance Analyzer will only
- display source code in the editor if the highlighted item is a
- function.
-
-
- 2.14 Using the Data Access Builder
-
- This section contains important information about using the Data
- Access Builder.
-
-
- 2.14.1 Prerequisites
-
- o There are no database prerequisites to run the Data Access
- Builder.
-
- If you want to use a DB2 database, you must install DB2 for the
- Windows NT or Windows 95 platform.
-
-
- 2.14.2 Usage Notes
-
- o An SVGA screen is recommended to run the idata tool.
-
- o Only 32-bit datasources are displayed in the database selection
- list.
-
- o The 32-bit Driver manager is \WINNT35\SYSTEM32\ODBC32.DLL.
-
- o You do not have to use the "Register Database" option each time a
- database product is installed or removed. This option is needed
- if you:
-
- - Add DB2
- - Remove DB2
- - Go from none to at least one ODBC data source
- - Go from at least one ODBC data source to none
-
-
- 2.14.2.1 Using the IDatastore Class in a Windows NT Application
-
- You must do the following if your application uses the IDatastore
- class on any database other than the one which you used for the Data
- Access Builder to generate the code. You must bind the file
- CPPWACL2.BND to all the databases accessed by your application. This
- allows IDatastore to connect, disconnect, and complete transactions
- against the database.
-
- To bind the file, enter the following commands:
-
- DB2START
- DB2 CONNECT TO database
- DB2 BIND D:\IBMCPPW\BND\CPPWACL2.BND
- DB2 TERMINATE
-
- where database is the name of your database and D:\IBMCPPW is the path
- where you installed the code.
-
-
- 2.14.3 Creating a SOM library of Multiple Classes
-
- A C procedure called SOMInitModule is implicitly generated during SOM
- code generation when you check the makefile option or the automatic
- link option. These two options imply that a SOM DLL, which requires
- the existence of this procedure, is created. If you do not want to
- create a SOM DLL, make sure that the options are not checked. If not,
- you will receive multiple definition errors for this routine when
- linking multiple SOM OBJ files together.
-
-
- 2.14.4 Features
-
- o Data Access Builder also supports the following ODBC drivers:
-
- - dBase
- - Excel
- - SQL Server
- - Text
-
- For configuration information for the above drivers, use WINHLP32
- to view the driver's HLP file, that is found in the
- \ibmcppw\odbc32 or \ibmcppw\odbc16 directory.
-
- For example, for information on the dBase driver, type:
-
- winhlp32 ibdbf08.hlp
-
- o A new "Save window size" option is added to the View pulldown
- menu. The option restores the size and the position of the Data
- Access Builder on restart. The option is off by default.
-
- o On Windows 95, use the 'clean95' option in the generated
- makefiles, rather than the 'clean' option which should be used on
- Windows NT.
-
-
- 2.14.5 Known Problems
-
- o If an invalid class or attribute name is entered in the class
- settings notebook, the previous value is restored as designed, but
- no warning is issued.
-
- o If a data identifier is mapped to a nullable column, database
- operations with the data identifier set to null will not work.
-
- o The help button on the class settings notebook does not work when
- the notebook page has focus. Use the F1 key to obtain the help
- for the page.
-
- o After creating a class, the mouse pointer remains in the busy
- state until the mouse is moved. Move the mouse after creating a
- class to exit the busy state.
-
-
- 2.14.6 Known Problems on DB2 That Affect the Data Access Builder
-
- o Loading tables with a foreign key column name greater than 15
- characters will cause the Data Access Builder to crash.
-
- o DB2 user-defined types based on character types are not mapped
- correctly.
-
- o DB2 maps DECIMAL to the C/C++ data type double which may result in
- round-off errors and loss of precision. Data Access Builder also
- maps DECIMAL to the date type double.
-
-
- 2.14.7 Using the Data Access Builder with the AS/400
-
- o We recommend using the OWNER field while filtering. The owner
- field must be specified in UPPER CASE.
-
- o AS/400 does not yet support Windows NT Japanese version code page
- 943.
-
- As a work around, set the DB2CODEPAGE environment variable to 932
- before trying to connect to the AS/400.
-
- o You must create a collection named NULLID on the AS/400 system.
-
- o If you are using a US/ENGLISH system with code page 1252 and you
- are interacting with a V3R1 AS/400 System, then you must load PTF
- SF24582 onto the AS/400.
-
- 1252 is the default code page for US/ENGLISH systems.
-
- 1252 cannot interact with AS/400s supporting V2R3.
-
- In this case, you should change the DB2CODEPAGE environment
- variable to 850 before connecting to the AS/400 system.
-
-
- 2.15 Using the Browser
-
- This section contains important information about using the Browser.
-
-
- 2.15.1 Known Problems
-
- 1. When printing on Windows 95, if you have your printer configured
- to print to a file, a Print To File dialog will be shown to prompt
- you for the file name. This dialog will show beneath other
- windows, but you can access the dialog from the Task bar or you
- can move the other windows aside. Enter the file name and the
- Browser continues with the printing request.
-
-
- 2.15.2 Permanent Restrictions
-
- 1. You can use PDB files generated by the VisualAge C++ for OS/2
- version 3.0 product in this Browser. You cannot use PDB files
- generated by VisualAge for C++ for Windows and use them on OS/2,
- nor can you use PDL or PDE or PDD files across systems.
- 2. If you browse a program that contains .OBJ files created from C
- source files, the Browser Files Dialog informs you that the .PDB
- files for the C files cannot be found. Ignore this message and
- select the Load button. Note that no Browser information exists
- for the C files.
- 3. If you choose to Generate Browser information, the compiler
- creates a PDB file even if the compilation fails. The file
- sometimes contains incorrect data. The browser cannot always
- detect this problem.
- 4. In the list of file names that are fully-qualified, the list
- contains the names after compilation and not necessarily the names
- on your system. For example, if you List All Files in any of the
- VisualAge for C++ libraries, the files may appear to be located in
- C:\IBMCPPW. If the browser cannot find the files it searches the
- path defined in the Browser Settings notebook.
- 5. The browser loads all the information from a program (.EXE or
- DLL), including information from any LIB files used. If the
- project that builds the .EXE or DLL does not contain the project
- that builds the LIB file, the Refresh function in the Browser
- cannot refresh the information and the information is not
- displayed.
- 6. If you load some browser information with QuickBrowse and some
- with compiler-generated .PDB files, you sometimes get the message
- "An error occurred while loading the file filename.pdb". Either
- delete the .PDB files and load only QuickBrowse information, or
- rebuild your project to generate .PDB files for all of your source
- files. If the problem persists, contact VisualAge for C++ Service
- and Support.
- 7. QuickBrowse does not correctly identify SOM classes.
- 8. If you try to run the Browser on the executable files for the
- VisualAge for C++ sample projects, you may see the message "Will
- not QuickBrowse the following files after analysis of the make
- file." If you see this message, choose Cancel, exit the Browser,
- and the do one of the following:
- o Rebuild the project.
- o Rename the target of the project.
- o Delete the target of the project.
-
- You can then browse the project.
- 9. Due to the 16-bit GDI coordinate system used by Windows 95, the
- Browser is unable to render highly complex graphs that can be
- rendered on OS/2 or Windows NT. If the Browser encounters such a
- situation, a message is displayed, and possible workarounds are
- suggested in the on-line help for the message. Unfortunately,
- there will be some complex graphs which cannot be displayed on
- Windows 95, even after all workarounds have been tried.
-
-
- 2.16 SOM
-
- This section contains the important information about using the SOM
- toolkit.
-
-
- 2.16.1 Known Problems
-
- o When using the DTS hh emitter:
-
- - Sometimes it generates duplicate constructors.
- - Sometimes it causes a runtime heap error R6018.
-
- o The following code causes an access violation on Windows NT:
-
- SOMClass * pClass = NULL;
- somId aClassId = somIdFromString( "MyClass");
- Class = SOMClassMgrObject->somFindClsInFile(aClassId, 0, 0, "mydll");
-
-
- 2.17 Developing Applications For Win32s
-
- This section contains important information about building and running
- Win32s applications.
-
-
- 2.17.1 Building Applications for the Win32s Environment
-
- Building an application to run under Win32s may involve considerations
- specific to the Win32s platform. For example, an application that
- shares DLLs with other applications may require special handling.
-
- See the VisualAge for C++ Programming Guide for more information about
- building executables and DLLs. See the following sections in this
- Read Me for specific information about installing and using the
- VisualAge for C++ tools for Win32s applications.
-
-
- 2.17.2 Running Win32s Applications on Windows 3.1
-
- This section describes the files you need to run applications.
-
-
- 2.17.2.1 Installing Win32s Operating Subsystem Support
-
- To run applications on a machine using the Windows 3.1 or Windows 3.11
- operating system, you must upgrade your system to include the Win32s
- 1.3 subsystem. Disk images for the Win32s subsystem are located in
- the following directory:
-
- \IBMCPPW\SDK\DISKS\RETAIL\OLE32S
-
- To install this subsystem on your Windows 3.1 or 3.11 machine, do the
- following:
-
- o Run the SETUP.EXE program in the DISK1 subdirectory, or,
-
- o Create diskettes from these subdirectories, then run the SETUP.EXE
- program on the diskette created from the DISK1 subdirectory.
-
- This installs the Win32s 3.1 subsystem with OLE support. For more
- information on how to install the Win32s environment, see the
- Installation Guide and Product Overview.
-
- To debug programs on a Windows 3.1 or Windows 3.11 machine, copy the
- "idebugp.exe" program from the "BIN" directory on the VisualAge for
- C++ CD-ROM. You can find instructions for using the "idebugp.exe"
- program in the User's Guide.
-
-
- 2.17.2.2 Installing Win32s Runtime Support
-
- The steps are:
-
- 1. Copy the Win32s runtime DLLs from the Windows NT or Windows 95
- VisualAge for C++ \IBMCPPW\WIN32S directory to a directory in the
- path of the Windows 3.1 system.
-
- IF USE GM+ AND GD+ CPPWM35I.DLL
- IF USE GD+, GM- AND RN+ CPPWN35I.DLL
- RUNTIME MESSAGES CPPWRTM.DLL
- RUNTIME ERROR MESSAGES CPPWRERR.DLL
-
- 2. Copy any Win32s files specific to the type of application you have
- built, from the \IBMCPPW\WIN32S directory.
-
- o For an Open Class Win32s application, the following DLLs are
- required.
-
- - cppwob3i.dll
- - cppwou3i.dll
- - cppwod3i.dll
- - cppwom3i.dll
- - cppwor3u.dll
- - cppwot3.dll
-
- o For a Visual Builder Win32s application, the following DLLs
- are required.
-
- - cppwv03.dll
- - cppwov3.dll
-
- Refer to the Visual Builder User's Guide for more information.
-
- o For a Data Access Builder Win32s application, refer to the
- Frequently Asked Questions document in the Online Information
- Notebook for more information.
-
- o Win32s users who want to run your application on Windows 3.1,
- Windows 3.11, or Windows for Workgroups must also have
- Win32s 1.30 with OLE support. See the section called
- Installing Win32s Support for details.
-
-
- 2.17.3 Usage Notes
-
- NOTE: Be aware that your Win32s application, may not perform as well
- under Windows 3.1 as it does under Windows NT or Windows 95, due to
- the 16-bit nature of Window 3.1.
-
-
- 3.0 Samples
-
- This section contains important information about using the samples.
-
-
- 3.1 General Information
-
-
- 3.1.1 Usage Notes
-
- Because all samples are enabled for Performance Analyzer, CPPWPA3.DLL
- must be present to Run the sample and CPPWPA3.OBJ must be present to
- Build the sample without errors. These objects are automatically
- installed if you install the Performance Analyzer component.
- Otherwise, copy the CPPWPA3.DLL from the /BIN directory and the
- CPPWPA3.OBJ from the /LIB directory of the CD-ROM to the corresponding
- directories on your system.
-
- Copying CPPWPA3.DLL and CPPWPA3.OBJ simply allows you to invoke Run
- and Build without errors. To use the Performance Analyzer or any
- other component with the samples, you must install those components.
-
-
- 3.2 Data Access Builder Samples
-
- This section contains important information about the samples.
-
-
- 3.2.1 Running the Samples on Win32s
-
- Follow these steps to run the Data Access Builder samples on Win32s.
-
- 1. Install the Win32s runtime environment for the Data Access Builder
- which is explained in the FAQ under the question "How Do I Run a
- Data Access Builder Application for Win32s on Windows 3.1?".
-
- 2. Copy the samples from the Windows NT or 95 machine to the Win32s
- machine. There are 4 executables and one DLL to be copied. They
- are located in the following compiler subdirectories:
-
- \bin\idatasm1.exe (This must be run before the other executables
- to initialize the database.)
-
- \samples\database\stockcpp\client.exe (Stock c++ sample)
- \samples\database\car\daxsamp\car.dll (DAX generated code DLL)
- \samples\database\car\carbrws\carbrws.exe (Car Browse sample)
- \samples\database\car\caredit\caredit.exe (Car Edit sample)
-
- 3. In Windows 3.1 edit the ODBCINST.INI file located in the \WINDOWS
- directory. Under the section [INTERSOLV 2.11 dBASEFile (*.dbf)],
- edit the 'Driver=' and 'Setup=' fields to point to the location
- that the dBASEFile ODBC driver (IBDBF07.DLL) was installed.
-
- 4. In Windows 3.1 run the ODBC administrator (ODBCADM.EXE) from the
- Program Manager or File Manager. When the dialogue box comes up,
- click on the ADD button and choose 'INTERSOLV 2.11 dBASEFile
- (*.dbf)' and click OK. To configure the datasource, view the help
- file provided with the dBase driver (IBDBF07.HLP) using the
- Windows help viewer (WINHELP.EXE). Important: The 'Data Source
- Name' field must be set to "daxsamp" and the 'Locking' field must
- be set to "NONE" for the samples to run.
-
- 5. Run the samples in the same way for Windows NT/95 with the
- exception of 'resettbo.bat' which calls the executable
- 'IDATASM1.EXE'. Since Windows doesn't support running executables
- from batch files (unless the executables can be run in a DOS
- session), the user must run this executable directly from the
- Program Manager or File Manager by typing:
-
- IDATASM1 "WIN32S" "ODBC"
-
- As with any executable which gives standard output on Win32s,
- redirect the output to a file.
-
-
- 3.3 SOM/WorkStation DSOM Samples
-
- This section contains important information about the samples.
-
-
- 3.3.1 Known Problems and Restrictions
-
- o The Build Notes give you a generic description, which is different
- from the way the samples are built. You need to consult the
- individual readme.txt files for specific information. Click on
- the "View Readme" selection box to see the readme file in an
- editor. Also, refer to the rest of this section for additional
- information.
-
- o Building and Running Samples: General Information
-
- - Sometimes problems exist when VisualAge for C++ is installed
- in an environment that has another compiler already installed.
- Check your PATH, INCLUDE, and LIB environment variables to
- ensure that you are using the correct executables, include
- files, and libraries.
-
- - Selecting the "Project/Build Normal" will not work because
- WorkFrame does not currently support rules for compiling IDL
- files. Instead, you need to select "Project/Make" to use the
- makefile "vac.mak" that has been supplied. Or you can right
- click on "vac.mak" and choose "make" from the pop-up menu.
-
- - Only "Project/Make" and "Project/Run" are supported by
- WorkFrame.
-
- o Building and Running Samples: Sample Specific Information
-
- - ALL DSOM SAMPLES (location: samples\som\somd\cpp\* )
-
- After running each WorkStation DSOM sample, you need to kill
- the daemon "somdd" before you can run another sample. Close
- the window where somdd is running.
-
- - Event (location: samples\som\somd\event )
-
- There is a potential race condition in starting the four
- interacting programs for this sample. You can start the
- programs manually by executing the commands in run.bat one at
- a time from the Project Monitor or from the command line.
-
- - If the client for a DSOM sample is invoked without starting
- the daemon or server first, the client hangs and cannot be
- terminated by a CTRL-C.
-
- It has to be terminated explicitly from the "Task Menu" by
- invoking "End Task".
-
-
- 4.0 Documentation
-
- This section contains important information about the documentation.
-
- NOTE: The online versions of the documentation are more current than
- the PostScript publications.
-
- To view the publications online, open the icon representing the Online
- Information Notebook, select the radio button for a publication, and
- click on the View pushbutton.
-
-
- 4.1 Printing
-
-
- 4.1.1 Known Problems With Printing
-
- o Problems exist with printing because of the large amount of
- printer memory required to load the large files. If you do not
- have enough printer memory, you cannot print the large files.
-
-
- 4.1.2 How to Print
-
- To print the PostScript files on a workstation-connected PostScript
- printer, copy the file to the printer destination. The required fonts
- are imbedded in the files. You can also print these files on a
- host-connected PostScript printer; make sure you upload them in binary
- format.