Products → Freeware → ICELIB0.NLM → Frequently Answered Questions
Inter-Corporate Extended Library
Frequently Answered Questions
A. General information
A.1. Does freeware really mean "free?"
A.2. Which development languages are supported?
A.3. Compatibility with future updates
A.4. How can I test my NLMs with older versions?
A.5. Why not use the file's date and time to determine the version?
B. Development issues
B.1. Library version checking
A.1. Does freeware really mean "free?"
Yes. And you may distribute this library with your own free or commercial products, as long as ICELIB0.NLM is not modified in any way.
A.2. Which development languages are supported?
The same C/C++ used to develop NetWare Loadable Modules, which are destined to execute on Novell's NetWare OS.
Assembler is also supported, but the C calling convention must be used. If you are not developing NLMs with TASM (Borland's Turbo Assembler), then your source code may not appear the same as in our online documentation (a good understanding of the C calling conventions is highly recommended for assembler programmers).
A.3. Compatibility with future updates
It is intended that existing functions in this library will not change in future releases. When new features are added to functions, developers must indicate to the function (usually through a "flag" -- see online documentation) that this feature should be enabled.
A.4. How can I test my NLMs with older versions?
Older versions of our NLMs are available at http://www.inter-corporate.com/products/freeware/icelib/archive/. We recommend you review the history to determine the oldest version your NLM will be compatible with.
A.5. Why not use the file's date and time to determine the version?
File dates and times are easily changed for a variety of reasons, including bugs in software or design shortcomings with some file transfer protocols, and are therefore totally unreliable.
Since version numbers on NetWare are embedded in the NLM, safe from bugs and design flaws, the network administrator can accurately determine the version number by loading the NLM at the console prompt, and the software developer can accurately determine the version number by calling a function.
When checking for a minimum version of ICELIB0.NLM to ensure some needed features exist for your application, or to avoid a bug that causes a problem for your application, use the ICE_GetLibraryVersion() function, then compare to ensure it returned a value equal to or greater than the version number you are expecting.
A common pitfall for developers is to check for a specific version number, which excludes newer versions of the library. Since backward compatibility is considered in the design of ICELIB0.NLM, this should not be an issue.