Over the years, there have been many common queries in the mailing list and discussion forums. You can search the archives for answers to your question. If no answer is found, ask the question in our Open Discussion forum. Also, make sure that you browse our wiki, especially the Knowledge Base, for in-depth information.
Download File 🗹 https://www.google.com/url?hl=en&q=https://urlca.com/2yMELc&source=gmail&ust=1719746899733000&usg=AOvVaw2quA0Zjg_oFNlS2WJcvxhr
Yes, but you need to be logged in, and you need editor rights. Then just click the "edit" icon at the top of this page. If you do not already have editor rights, then ask the administrators to be promoted, e.g. on the forums. However, please do not add unanswered questions, only topics that you have regularly answered yourself or issues that you are familiar with. Good places to ask questions are the forum and the mailing list. You can also comment on this FAQ at the bottom of the page.
If you run into a problem, then try to categorise the issue before reporting it. Is it a OWLNext installation problem? Is it a compiler or tools issue? Is it a OWLNext bug? Or is it an issue particular to your application?
For OWLNext installation and compiler issues make sure you read our installation guide thoroughly, including the sections on how to set up your development environment, and test the installation using the provided examples. Read the trouble-shooting section in this FAQ to identify other problems.
If you have clearly identified an OWLNext bug, you can report it directly in our bug tracker. Make sure you read our guidelines for Submitting Bugs and Feature Requests. When submitting a bug, you may also attach a patch to fix the issue.
If the issue is particular to your application, or you remain unsure about the nature of the problem, then use our Open Discussion forum to request help. Please include as much information as possible, including the versions of OWLNext and compiler tools you are using, as well as all relevant details about the problem. It is especially helpful if you tell us what resolutions you have already tried and the information you've already read (such as this FAQ), so that we do not need to respond with redundant advice.
The wiki Main Page contains links to the latest releases and their change lists on the right. These link to the page OWLNext Stable Releases where you'll find sections for all the releases and their revisions. These sections just give a summary of the most interesting changes, but have links to the relevant tickets and milestones in the issue trackers; Bugs and Feature Requests. For overview, see the Bugs Milestones and Feature Requests Milestones. For the full details, you can follow links from the wiki and trackers to the Code repository, which gives you the detailed Code Log for any branch.
In the 6.30 series, OWLNext 6.30 and 6.36 are the last versions that support Borland C++ 5.02 and 5.5, respectively, and these LTS versions are maintained as stepping stones for users upgrading to OWLNext from Borland C++ and OWL 5. In particular, OWLNext 6.36 has support for the latest compilers added regularly (see Supported Compilers), so that users can easily upgrade to modern tools, and then transition from 6.36 to the latest version of OWLNext. See Upgrading from OWL Recommended step-by-step approach.
In the 6.40-series, OWLNext 6.44 is currently maintained as an LTS version with extensive backwards compatibility and support for older compilers, for those unable or unwilling to make the jump to later versions of OWLNext based on modern C++.
The simplest way to get an OWL license is to buy a copy of some product that includes OWL, i.e. Borland C++ or C++Builder. Otherwise, you may try to contact the copyright holder and ask for a license. See Prerequisites in the installation guide.
We require all contributors to only submit work under terms compatible with our overall open source license. However, our library consists of some very old code, some of which contains additional terms that we now consider to be archaic and outdated. Unfortunately, we have not been able to get in contact with all of the original authors to obtain permission to remove these additional terms from the source code.
But that is not the whole story. If you just want to choose a GPL license for your own work, you can do so, even if your work depends on OWLNext. You just have to add an exception for OWLNext in the license text. Although that is fine, the Free Software Foundation discourages you from doing so for non-free libraries:
It gets more complicated if you want to use other GPL work, e.g. a library, in your OWLNext application; or if you want to extend other GPL work by adding functionality dependent on OWLNext. The GPL for that other work will restrict you from creating a "combined work" that depends on non-GPL components. You will then have to get an exception for OWLNext from the copyright holders of that work.
If you are new to OWLNext, then you should first read the article Upgrading from OWL. This article will give you some insight into what changes are required to your legacy OWL code to use OWLNext. If after reading this article you feel ready to upgrade, then you should proceed to install OWLNext. Our installation guide contains detailed step-by-step instructions. Follow them closely. When you have OWLNext properly set up, then return to the article Upgrading from OWL as you adapt your code. You may also want to study the Knowledge Base and browse the other questions and answers in this FAQ. Should you run into problems you cannot find the answer to, you can ask for help in our Open Discussion forum. Hopefully, someone will come to your rescue.
We use the Subversion system for source code version control. All our code is stored in a Subversion code repository (data base). The code repository contains a history of the changes to the source code. Every change to the repository, big or small, is recorded as a "revision" and given a unique number. A revision number hence marks the state of the repository at some point in history.
The structure of the code repository follows the standard Subversion convention with three main directories: "trunk", "branches" and "tags". The trunk contains the main code under development, while the branches and tags contain different versions. Branches contain the currently maintained releases (e.g. "branches/644"), also known as release branches, as well as development branches (e.g. "branches/owlet"). Release branches are considered stable and are usually only updated for fixing bugs or adding build support for new compiler versions. Development branches may be temporary or experimental, and are usually used for big feature development that deviate from the main code on the trunk. Tags simply contain static copies of every release made.
The code repository can be accessed in the Code section. You can here inspect its contents and revision history. You can make a snapshot and download a copy of any version. You can also use a Subversion client to create a local "working copy" of any directory in the repository and keep it up to date. Developers can submit revisions to the code using the Subversion client.
If OWLMaker or the build scripts fail, then check that your compiler tools are set up correctly, that the drive volume supports short filenames (legacy 8.3 filename aliases are required by some legacy toolsets, and Windows now only enables this for the system drive by default), and that you do not have interference from other tools that you use. Also, make sure you use the latest version of OWLMaker. Old versions may not be able to build the latest source correctly, or may have bugs that have since been fixed. The installation guide has a link to the latest version.
When a major new version of OWLNext is released, it may be released with a "beta" designation. The main reason for the beta designation is to signal to users that the release is fresh and not thoroughly field-tested. Whether or not to use a beta in production depends on your assessment of the risk of deployment. Study the release notes and evaluate the changes to make a decision for your circumstance. And, as always, run your own thorough tests.
The beta designation also allows us the freedom to ship a binary incompatible update, should it be necessary to fix any unknown regressions that affect the ABI. Technically, we allow this by keeping the OWL_PRERELEASE flag set for beta releases. This causes the build process to generate library files with three-part version numbers in their naming, thus allowing differentiation between bug-fix releases. Conversely, when the OWL_PRERELEASE flag is cleared, the build process generates file names with two-part version numbers, providing naming stability and allowing DLL replacement for bug-fix releases. This of course restricts us to making only ABI-compatible changes between releases.
ABI-compatibility is only an issue for dynamic linking and DLL updates. We now generally recommend using static linking, for which ABI-compatibility is a non-issue (see "Should I use static or dynamic linking (DLL)?").
You should only use the compatibility modes as a stepping stone for porting legacy applications to OWLNext. When your application is working with OWLNext, you should turn the compatibility modes off, adapt your code, rebuild and test your application.
Note that adding const for the TPoint reference here was not done to prevent modification of the argument (LPARAM) sent by the message sender. The point is sent by value in the Windows message, so modifying the temporary TPoint created by OWLNext would be harmless. However, unexpected modification could happen when forwarding from handler to handler (e.g. from derived class to base, as is often the case), and this could (and actually did) lead to bugs.
Do not write ClientToScreen ((TPoint&) p) or ClientToScreen (const_cast (p)). Casting away const defeats the purpose of making the parameter const-correct in the first place, and leads to the brittle code that introducing const was intended to prevent.
In 6.32, TGauge was deprecated and replaced by the new class TProgressBar. TGauge was simplified and retained for supporting legacy code until OWLNext 8, in which it was moved to OWLExt (see [feature-requests:#202] and [r5913]). TGauge is now a pure custom OWL control, while TProgressBar encapsulates the Windows common control (Progress Bar).
b1e95dc632