To install Xbase++ perform a double-click on the Microsoft Installer package for your product. An installation wizard is started which guides you through the installation procedure. The exact name of the installation package varies depending on the build number and the language for which the product was packaged. Package names follow the following convention:
Xbase++ Professional Edition: xpp-prof.20-00-<build>.<language>.msi
Xbase++ Foundation Edition: xpp-foun.20-00-<build>.<language>.msi
The installer shipped with this release automatically detects and updates an existing Xbase++ 2.0 installation. User-specific files and settings will be kept by the update process. For example, your code templates in the Xbase++ Workbench will still exist after updating to the latest version. An Xbase++ installation can also be rolled back to an earlier Xbase++ 2.0 build in a similar fashion. Again, your files and settings will be preserved. Only version-dependent files such as the runtime DLLs will be changed during the rollback.
Note: Updating and rolling back versions is a capability which was introduced with the CPT4R4 installer. Earlier preview builds cannot be managed in this manner. If you have installed an earlier preview build, it must be uninstalled before installing this release. After uninstalling, please make sure that the program files were successfully removed by the installer. Any left-over files and directories in the folders c:\program files\alaska software (32-bit operating systems) and c:\program files (x86)\alaska software (64-bit operating systems) should be deleted prior to installation.Starting with Xbase++ 2.0 the development tools require activation. Currently, an activated product is required only for receiving updates. Future Xbase++ versions, however, may reject to perform a compile or link operation without proper activation. A fair use policy has been implemented which allows multiple activations on different machines as well as multiple activations on the same machine. Again: activation is only required for the development tools and not for the resulting end-user applications! No internet connection is required during normal operation. Internet access is only needed to perform an automated activation (which is optional).
You can find your product key on the backside of the plastic card in your product box. The product key can also be retrieved online via our website. To do this, please log into your online account at www.alaska-software.com, then go to My Account->View Licenses.
To automatically activate your Xbase++ product start the Xbase++ Workbench, then select the Help->License Manager menu item. Enter your product key. Click the "Activate" button when done. Your product will be activated automatically, which may take a few seconds. The only pre-requisite is an internet connection.
In the event you feel more comfortable performing the activation manually, you can do so with a web browser. Simply go to www.alaska-software.com/activate and fill in the information required for activation. You will need your product key as well as a your hardware identifier. The hardware id can be retrieved by typing
asac /i [ENTER]
on the command line.
Once you have typed in the required information, click "Activate my product key now". You will be supplied with an activation key which is required to complete the procedure. This is a two-step process which must be performed on the command line:
Set your product key by typing
asac /p <product key> [ENTER]
Activate your product with your activation key. Enter
asac /m <activation key> [ENTER]
You can check your activation status in the Xbase++ Workbench by selecting the Help->License Manager menu item. The information can also be retrieved by typing
asac /s [ENTER]
on the command line.
Note: No personal information will be transferred by either activation method!
With Xbase++ 2.0 we are switching to a new update mechanism allowing us to deliver updates almost instantly to Xbase++ developers. To retrieve the list of available updates, install updates or to rollback to a previous version, please go to Help->Update Manager in the Xbase++ Workbench. Again: updates are only available if you have activated your installation. Updates do not affect your activation status, nor do they affect your personal Workbench settings.
Beginning with Xbase++ version 2.0, complex project scenarios involving targets located in different directories are fully supported. This required changes in the way the targets and the source files included in a project are handled by the project builder pbuild. Consequently, you should verify your .xpj files for semantical correctness if your projects are laid out in the manner described.
Performing the following steps is not required for projects whose targets reside in the same folder as the project file (xpj)!
In previous versions, the location of the targets and the source files was specified relative to the folder which contained the project file. This approach had serious side-effects which basically made managing multi-target/multi-directory projects impossible. Beginning with this version, the location of the source files is specified relative to the corresponding target in the project file. This means that your existing projects may have to be modified before they can be used with this version.
This section explains the steps required to adapt your projects so that they can be used with the new Xbase++ version.
The following example shows an old-style project file with two targets, an executable (app.exe) and a DLL (helper.dll) which is located in a sub-folder:
[PROJECT]
Project.xpj
[Project.xpj]
app.exe
sub\helper.dll
[app.exe]
main.prg
common.prg
usual.ch
[sub\helper.dll]
sub\dllmain.prg
sub\resources.arc
sub\special.ch
common.prg
Because source files are now specified relative to the target, the relative path sub\(file) now expands to a folder which does not exist (sub\sub\(file)). Furthermore, assuming the DLL and the .exe target are built using the same source file common.prg, this source file must be prefixed with "..\" for the DLL target. This instructs the project builder to use the file in the target's parent directory. The required modifications are highlighted in the following example:
[PROJECT]
Project.xpj
[Project.xpj]
app.exe
sub\helper.dll
[app.exe]
main.prg
common.prg
usual.ch
[sub\helper.dll]
dllmain.prg
resources.arc
special.ch
..\common.prg
In previous versions, the project target location was used as some kind of deployment location to have all EXEs and DLLs of an Xbase++ project deployed at a single location which holds data files and other auxiliary files. With Xbase++ 2.0 the project target and the project binaries target location can be different. The benefit of this approach is that no intermediate files are created at the binary target location. Furthermore different targets can have source files with the same name without conflict. With previous versions, having different targets with identical prg/ch/arc filenames broke the dependency management of the Xbase++ Project builder. As a workaround “pbuild –a” was used, leading to unnecessary large build cycles.
The following example shows an old-style project file with the target app.exe that shall be created in the folder ..\bin:
[PROJECT]
Project.xpj
[Project.xpj]
..\bin\app.exe
[..\bin\app.exe]
app.prg
src\util.prg
To migrate an old-style Xbase++ project to a 2.0 project file simple remove the folder ..\bin from your project as well as project target node. Then add a TARGET_DIR definition to each of your project targets and specify the project target binary location using TARGET_DIR=..\bin
[PROJECT]
Project.xpj
[Project.xpj]
app.exe
[app.exe]
TARGET_DIR = ..\bin
app.prg
src\util.prg
The define constants supported by the Layout Manager class have been renamed for consistency. If you have already used any of the define constants with one of the preview builds, these defines must be renamed in your code. Otherwise, compile or runtime errors will result. The following table lists the changes applied in this build:
Old constant: | New constant: | ||
XBP_NOEDGE | => | XBPLAYOUT_NONE | |
XBP_LEFTEDGE | => | XBPLAYOUT_LEFT | |
XBP_TOPEDGE | => | XBPLAYOUT_TOP | |
XBP_RIGHTEDGE | => | XBPLAYOUT_RIGHT | |
XBP_BOTTOMEDGE | => | XBPLAYOUT_BOTTOM | |
XBP_RELXPOS | => | XBPLAYOUT_RELLEFT | |
XBP_RELYPOS | => | XBPLAYOUT_RELBOTTOM | |
XBP_RELWIDTH | => | XBPLAYOUT_RELWIDTH | |
XBP_RELHEIGHT | => | XBPLAYOUT_RELHEIGHT | |
XBP_XCENTER | => | XBPLAYOUT_CENTERX | |
XBP_YCENTER | => | XBPLAYOUT_CENTERY |
Instead of renaming each occurance of the layout manager define constants, the following #define directives may be used to map the old constants to their new counterparts:
#ifndef XBP_LEFTEDGE | |||
#define XBP_NOEDGE | XBPLAYOUT_NONE | ||
#define XBP_LEFTEDGE | XBPLAYOUT_LEFT | ||
#define XBP_TOPEDGE | XBPLAYOUT_TOP | ||
#define XBP_RIGHTEDGE | XBPLAYOUT_RIGHT | ||
#define XBP_BOTTOMEDGE | XBPLAYOUT_BOTTOM | ||
#define XBP_RELXPOS | XBPLAYOUT_RELLEFT | ||
#define XBP_RELYPOS | XBPLAYOUT_RELBOTTOM | ||
#define XBP_RELWIDTH | XBPLAYOUT_RELWIDTH | ||
#define XBP_RELHEIGHT | XBPLAYOUT_RELHEIGHT | ||
#define XBP_XCENTER | (XBPLAYOUT_CENTERX-XBPLAYOUT_RELLEFT) | ||
#define XBP_YCENTER | (XBPLAYOUT_CENTERY-XBPLAYOUT_RELBOTTOM | ||
#endif |
With Xbase++ 2.0 the socket layer is a part of the Xbase++ base product. Previously, the socket layer had been contained in the ASInet add-on library, and had to be included into the project via the asinet1c.lib link library. This file is now obsolete and is no longer installed with ASInet. Consequently, the following error will now be raised by the linker if the asinet1c.lib is requested in a project:
ALINK: fatal error ALK4001: cannot open file "asinet1c.lib"
In order to overcome this problem, all references to asinet1c.lib need to be removed from both the source file and from the project file (xpj).
A new navigation mode (XBPBRW_NAVIGATION_SYSTEM) was added to the XbpBrowse class. In this mode, the position of the browse cursor does not change when operating the vertical scroll bar of the browse. Instead, the browse cursor retains its current position in the data source and hence may be scrolled off-screen. The new mode implements platform-compatible behavior and is the default navigation mode used by XbpBrowse objects. See the :navigationMode instance variable for further information.
The default value of the :softTrack instance variable of the XbpBrowse class has been changed to .F.. This causes XbpBrowse objects to continuously update their display when the data area is scrolled using the horizontal or vertical scroll bars. In previous Xbase++ versions, the browser display was only stabilized at the end of a scroll operation, i.e. when the scroll bar's thumb was released. The new default value implements platform-compatible behavior and also is consistent with the behavior of the XbpQuickBrowse class.
The default value of the XbpBrowse:cursorMode member variable was changed to XBPBRW_CURSOR_ROW. The new default value better reflects the requirements in most use-cases, and also is consistent with the XbpQuickBrowse class.
The following Xbase Part classes have been deprecated and are no longer shipped with the product:
All of these Version 1.9 Xbase Part classes were shipped including source code and just need to be recompiled in order to become useable with Xbase++ 2.0. Please use the source code which originally came with your 1.9 product.
These Xbase Part classes have been made a part of the Xbase++ 2.0 Foundation product and the original implementation of these classes can be removed from your projects. The classes were originally shipped as XBPSPLIT.ZIP and XBPDPICK.ZIP.
A number of Xbase++ related news groups are hosted by Alaska Software. These news groups provide access to a tremendous amount of technical know-how and experience that is shared between Xbase++ users world-wide.
In order to protect the news groups from spam, posting messages is restricted to Xbase++ users only. Please use the login information associated with your Alaska Software customer account when connecting to the news server.
The Alaska Software news server address is:
nntp://news.alaska-software.com
http://news.alaska-software.com
Please use the following e-mail address for contacting Alaska Technical Support:
support@alaska-software.com
Should you encounter problems with the installation routine, please attach the installer log to your support email. To obtain the log file, run the installer from the command line using the following parameters. Please replace <installationpackage> with the name of the installation package:
msiexec /i <installationpackage>.msi /L*V install.logXbase++, Xbase++ Workbench, Arctica, <CXP/> and the <CXP:xxx/> namespace logotype are trademarks or registered trademarks of Alaska Software.
Visual FoxPro, Windows Vista, Windows 7, Windows Server 2008, Windows 8, Windows Server 2012, IIS7 and ASP are trademarks or registered trademarks of Microsoft Corporation.
All other trademarks are trademarks or registered trademarks of the respective companies.
With best regards,