Visual Prolog Technical Support
Known Problems in Visual Prolog 5.1, Build 565
In the list of Known problems, we have documented the problems we know about
in Visual Prolog 5.1, build 565.
Please, see the following sections for detailed information:
We are working to correct these problems in one of the future versions of Visual
Prolog.
Known Setup Problems
A problem with long
filenames under OS/2 installed on a FAT hard disk
Some files in the Foreign, SOCKBIND, HTML and WWW directories
have long filenames that are not supported by OS/2 installed on a hard disk with FAT
formatting.
Setup program
requires an Internet browser to be installed at a computer
The Visual Prolog setup includes HTML files. You need to have an Internet
browser (NETSCAPE or Microsoft Explorer) installed to read these files.
Workaround
If an Internet browser is not installed at your computer, run a setup
program from the Install directory. We recommend you to install a browser, because HTML
files supplied with Visual Prolog 5.1 include useful and important information.
CTL3D32.DLL problem
While Visual Prolog installation, some users receive the following
error message: "The application uses CTL3D32.DLL, which is not the correct
version. This version of CTL3D32.DLL is designed only for Windows NT systems".
Version Info
The information applies to all versions of Visual Prolog.
Cause
The Visual Prolog installation program uses a service called CTL3D32.DLL that works
under Windows 95, 98, and NT.
Unfortunately, before Visual Prolog was installed, another installation program had
upgraded this DLL at user's computer to one that works only under Windows NT. This upgrade
was the reason of the error message.
Workaround
VIP Setup program searches for CTL3D32.DLL in the Windows system directory.
- You need to find, where CTL3D32.DLL is located in your system directory (e.g. under
Windows NT it is located in ..\<Windows_root>\System32 directory).
- Sometimes several copies of CTL3D32.DLL.DLL, installed by various programs, can be found
in different subdirectories.
If you find more than one occurrence, check registry move all them to another location,
and returning one by one define what is used really.
- Compare its date with the dates of other Windows DLLs. Is it the same?
- Replace the CTL3D32.DLL for Windows NT with a correct one. There are several ways to do
this.
- Visual Prolog contains CTL3D32.DLL in ..\<VIP_root>\BIN\WIN\DLL subdirectory, but
it does not copy it to the system location automatically. You can copy this DLL to the
system directory.
- You can restore the DLL from a back up copy of your system, or from Windows 98
distribution.
Known Compiler Problems
Last
call optimization does not work for functions and Class methods
Please be aware of this. It is going to be implemented in one of the following
versions.
An error in using of a
non-static object
Since the current version of Visual Prolog does not check whether an object exists, an
attempt to use a non-static class member (a predicate or a fact) after deleting of an
appropriate object causes an error.
Example
CLASS cA PREDICATES p1 ENDCLASS FACTS - base1 f1(cA) IMPLEMENT cA CLAUSES p1. ENDCLASS
GOAL
A = cA::new, assert(f1(A)), A:delete, f1(OA), OA:p1. %GPF
Bug in the
"Strong Type Conversion" check.
Sometimes the Compiler mistakenly generates the warning 248 "Integral data type
conversion is not strongly compatible" in the case, when a "smaller" type
(for example, short) is converted to a "larger" numeric type (for
example, real).
The Visual Prolog Compiler makes this checking, when the "Strong Type Conversion
Check" compiler option is switched ON in VDE's Compiler Options dialog, or
-ustr+ option is specified for the command line compiler.
Example
The following program gives two incorrect 248 warnings:
predicates real_pred(real)-(i) clauses real_pred(7). % No warnings should be given here ! goal X = val(short,7), real_pred(X). % No warnings should be given here !
Known Problems in the PROLOG.LIB
The Visual
Prolog external database has different formats in 16 and 32 bit
This is inconvenient and will be changed in a future version. One of the results is
that the 16bit VDE uses one .VPR file for a project and the 32bit VDE uses another format.
The program VIPCONVERT must be used to switch between the platforms.
Problems of
trapping exceptions in DLL's.
If a GPF or other exception happens in a prolog .DLL, which is called from a Prolog
main program, and linked in statically, this exception is trapped in the main program (but
not as expected in the .DLL). After this exception is trapped wrongly you should not make
further calls to the .DLL, but instead close down your application.
There are no problems when calling a .DLL dynamically, and in properly debugged
programs, this situation will not happen.
Bug in the storage/11
predicate
When the storage/11 predicate in the Visual Prolog DLL is
called from Visual Basic or Delphi application, the predicate returns a wrong value for UsedStack.
Known Problems in the VDE
Compiling of unmodified
non-Prolog modules
- A call of the project creating procedures ("Build"; "Run" or
"Debug") causes compiling of unmodified modules if a project includes non-Prolog
modules (C, CPP), for which OBJ-file has been created and "Generate Debug
Information" option in the Compiler Options Dialog is ON.
Problem with
directories and files, which names contain spaces
The VDE, the linker and the compiler have problems with using external compilers
and linkers placed in directories, which names contain spaces.
Visual Prolog does understand quoted filenames like "c:\program
files\msvc\bin\link.exe" but the problem is that the PATH to a compiler is set in one
place, and utility names are set in other places. This creates problems in
concatenating of the two items.
Workaround
Things work if you manually modify the scripts. A little trick you might use, if you
have some tools installed under PROGRAM FILES\, is that you instead refer to the short DOS
name, e.g. "PROGRA~1".
Recommendations
Do not install Visual Prolog into the directories, which names contain spaces.
Do not use the directories with such names in your projects if you need to refer to the
PATH.
Conversion of HAM to
5.0 format is irreversible
After conversion of .HAM file to the 5.0 format, it is not possible to go back As soon
as VIPCONV has converted a .HAM file to the new 5.0 format, it can not be converted back
to the 4.0 format.
Problem
with a non-existing Project name in a Command line
When the VIP.EXE (both 16 and 32 bit) is started with a non-existing .VPR filename in a
Command line, it does not report an error, but loads the last loaded project instead.
Using Ctrl-X,
Ctrl-C or Ctrl-V in the Menu Editor
Ctrl-X, Ctrl-C or Ctrl-V do not work if you are editing a
constant prefix. in the Menu Editor.
Workaround
- Use the right-mouse pop-up menu.
Problem in the multiprogrammer
mode
- The Code Expert setting for Automatic update of Source code of a resource is not saved,
when there is no changes in a resource (dialog, menu etc.) if a project was opened from a
.PRJ file.
A problem
with Visual Studio 6.0 resource compiler.
Visual Studio resource compiler rc.exe in Visual Studio 6.0 has been moved to the
location different from the location in previous versions.
This means that if a Visual Prolog programmer specifies, that the Code Generator should
generate *.RC and *.H files for the resources in his project, and uses Visual Studio 6.0
resource compiler, build scripts do not work correctly.
Workaround
It is necessary to change a rule for resource compilation manually with the help of the
Options|Project|Make Options|Rules menu item. For example:
rc->res:$(CDIR)..\common\msdev98 \BIN\RC
-r -I$(CDIR)INCLUDE\ -fo $(OBJDIR)$*.RES $(OBJDIR)$*.RC
Remark: The red part is added.
Bug with saving changes in a
topic, when "AutoSave Project on Exit" option in the Environment dialog is
turned off.
When "AutoSave Project on Exit" option in the Environment dialog is turned
off, and a topic name, a topic context string, or topic content were changed, these
changes are saved automatically without a warning.
A problem with read-only .PRJ
files
If a user opens a project from a read-only .PRJ file, no message describing that this
file is read-only is generated.
Help
Maker: a problem with importing .RTF files containing graphics
The current version of the Visual Prolog does not allow to import the .RTF files
containing graphics. An attempt to import .RTF file with embedded objects causes the
necessity to restart Visual Prolog. Nevertheless, it does not mean you cannot import file
with graphics at all, because it is possible to replace embedded objects in the source
.RTF file with the references to image files.
HCP Help Compiler hangs Visual Prolog if root VIP
directory name is longer than 8 characters
HCP Help Compiler hangs Visual Prolog during HCP.EXE DOS session while compiling Help
if root VIP directory name is more than eight characters.
The "Help Topics"
window is not initially activated when WIN32 on-line Help is run.
"Help Topics" window can be activated only by clicking on the "Help
Topics" button in the Help window.
Workaround
Please see a detailed description.
Known Problems in the VPI
EasyWin does not support C
as main Target
Modeless dialog
Tab problem.
- Tab does not work for the modeless dialogs, which have a modal dialog as a parent.
pict_Open
causes window caption and main menu flickering
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
vpi_CloseProcess cannot close 16-bit application
under WinNT
Bug exists only for WIN NT and only for GUI 16-bit application.
When you run 16-bit GUI application from 32-bit VPI application using vpi_CreateProcess,
and then try to close 16-bit application by vpi_CloseProcess, nothing happens, i.e. 16-bit
application is not closed.
dlg_ChooseColor
does not show input custom colors
Since dlg_ChooseColor does not show input custom colors, it is impossible to edit a
custom color.
Problem
in printing of color bitmaps by a black-and-white printer
The quality of printed images is low.
Known Problems with Linkers
An internal error
while importing DLL functions
Importing of DLL functions with extensions different from .DLL (e.g. winspool.drv)
causes an internal error.
Visual
Studio 6.0 uses a new format for Import libraries
Workaround:
Use the compatibility option in Visual Studio to generate 5.0 compatible import
libraries.
Build problem when
an external linker is used
The build process will end with the message "Project not built" in a non-DOS
mode if an external linker output includes the following strings: "fatal "
or "error ".
Workaround:
Avoid using of file and directory names including sequences "fatal "
or "error " if you are going to use external linkers.
The PDC
Link Editor has no option to set the stacksize
Workaround:
It is possible to edit the STACKSIZE parameter in a DLL with the help of MS
EDITBIN.EXE.
Known Problems with the Debugger
The values of output variables are sometimes not displayed
- The values of output variables are sometimes not displayed while using the predicates findall
and not.
Debugger immediately jumps to the continue point with no visual indication of a
fail.

See also:
Known Problems in VIP packages |
News | Solved Problems
| Upgrade Notes |Patches | Technical
Notes | Support_FAQ
|