Visual Prolog Knowledge Base
In this section, we have documented the problems we know about in the supported
versions of Visual Prolog. Often we provide steps to work around the
problem. If a bug is fixed in a new release, information about this fix is
published in the "Version Info" section of the article describing the
problem.
Note, please, that Visual Prolog 5.1 is supplied in two major builds: build
564 and build 565. Some of the problems found in Visual Prolog 5.1, build 564,
were solved in the build 565. To check the build of your copy, use the Help
| About command.
Please, see the following sections for detailed information:
We are working to correct these problems in one of the future versions of
Visual Prolog.
See also:
How to
Find Answers Online? | Support Questions and
Answers | Upgrade Notes | Patches
| Known Problems in Visual Prolog 5.0 | Known
Problems in Visual Prolog 5.02 | Technical
Notes | Write Us

Setup Problems
Setup
program requires an Internet browser to be installed at a computer
FIX
When AutoRun feature is ON under Windows, the installation
process begins with the presentation of the "Introduction to Visual
Prolog" (Intro.HTM) and other HTML files. You need to have an Internet
browser (Netscape Navigator or Microsoft Explorer) installed to read these
files. If a browser is missed, your system will try to open these files with
the help of other programs.
Version Info
The information applies to Visual Prolog 5.1, build 564 only.
Workaround
-
If an Internet browser is not installed at your computer,
it is possible to run a setup program from the full\vprol\Install
directory .
 |
To install Windows version of Visual Prolog, run
full\vprol\Install\setup.exe .
|
 |
To install OS/2 version of Visual Prolog, run
full\vprol\Install\setupos2.exe .
|
-
We recommend you to install a browser, because HTML files
supplied with Visual Prolog 5.1 include useful and important information.
Installation
problem under Netscape Navigator
FIX
Clicking on the "Install Visual Prolog" button in
the "Installation Notes" does not cause installation under Netscape
Navigator.
Version Info
The information applies to Visual Prolog 5.1, build 564 only.
Workaround
It is possible to run a setup program from the full\vprol\Install
directory.
 |
To install Windows version of Visual Prolog, run
full\vprol\Install\setup.exe .
|
 |
To install OS/2 version of Visual Prolog, run full\vprol\Install\setupos2.exe .
|
Error
message "Cannot write to file" while installation
FIX
The error message "Cannot write to file" can be
caused by a corrupted file.
Version Info
The information applies to Visual Prolog 5.1, build 564.
Workaround
Visual Prolog does not install any .DLLs, modifies no .INI files, does not
alter registry, etc.
That is why, it is possible to install Visual Prolog just by copying the full\vprol\run
directory to your disk.
Short trip through "Visual Prolog Subdirectories" description
will help you to understand, what directories you really need to copy to your
HDD. The description is included into both:
 | Visual Prolog online Help system (full\vprol\run\bin\vip.hlp ) |
 | "Introduction to Visual Prolog" (full\vprol\run\Intro.HTM)
-
see: "Product information" -> "The Visual Prolog
CD"). |
In
some cases bitmaps in the Setup wizard dialogs are corrupted
FIX
The reason of the problem is wrong
generation of RES files for some bitmaps.
Version Info
The information applies to Visual Prolog 5.1, build 564, and
previous versions.
A problem with
long filenames under OS/2 installed on a FAT hard disk
Problem
Some files in the HTML, Foreign, SOCKBIND, and WWW directories
have long filenames that are not supported by OS/2 installed on a hard disk
with FAT formatting.
Since Intro.HTM includes images with long names and refers to
pages with long names, it cannot be viewed and used properly.
Version Info
The information applies to Visual Prolog 5.1, builds 564 and
565.
Workaround
We recommend installing OS/2 version of Visual Prolog to the
disk with the HPFS file system.
CTL3D32.DLL problem
R000503.006: Problem
While installing or using Visual Prolog, 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".
Some Visual Prolog programmers report that users of their
applications also come across the problem with CTL3D32.DLL.
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
Replace an invalid CTL3D32.DLL in your system directory with a correct one.
You can restore the DLL from a back up copy of your system, or from
appropriate Windows distribution.
For example, in case of Windows 98, to expand the file in question from the
cab file on the disk, the following command can be used:Win98_CD>extract /A /e win98_22.cab ctl3d32.dll /L My_HDD:\tmp
Then the expanded DLL from My_HDD:\tmp\ctl3d32.dll should be
moved to the required system location.
We recommend Visual Prolog programmers, who supply applications using
CTL3D32.DLL, to include appropriate information about the problem into their
documentation.
Version Info
The information applies to all versions of Visual Prolog.
Language Problems
 | Last
call optimization does not work for functions and Class methods |
 | A problem with
multiple inheritance (Visual Prolog 5.1, build 564 and previous versions) |
 | An error in
using of a non-static object |
 | Bug with not(not( x ))
(Visual Prolog 5.1, build 564 and previous versions) |
 | Missed
detection of absence of local single fact initialization in the CLAUSES
section (Visual Prolog 5.1, build 564 and previous versions) |
 | Bug
in the "Strong Type Conversion" check. |
 | The
command line compiler fails to generate an OBJ file, when -Z+ option is
specified |
 | If a filename
is longer than 32 chars, and one declares a predicate with a
procedure domain, the linker can not find this predicate |
 | Problems of
integer-valued calculations |
 | Database
domain can be treated as a return domain in a predicate declaration |
 | Compiler
treats variable names, identical to some standard predicate names, as
predicate names |
 | Error in free gstack |
 | 7087 error: Invalid Parameter |
 |
Bugs in Visual Prolog
classes
|
 |
A
predicate type in the end of the predicates section is ignored, without
generating an error.
|
 |
GPF,
when a big OBJ file is used
|
 |
GPF,
while compiling, caused by Visual Prolog incompatibility with QDCSPI.DLL
|
 |
Non-stable
GPF, while allocating memory for a new object
|
 |
A call of a method of a
class that is declared with "language stdcall" calling convention
leads to application crush
|
 | The
Visual Prolog external database has different formats in 16 and 32 bit |
 | Problems
of exception trapping in DLL's. |
 | Bug in the storage/11
predicate |
 | not(bound(_)) does
not convert "fail" to "true" (Visual Prolog 5.1, build
564) |
 | str_len
predicate generates GPF if a negative value is passed to the Length
variable (Visual Prolog 5.1, build 564) |
 | A problem with the
disk predicate, when the UNC is used |
 | db_statistics predicate
problem |
 | Easywin
does not support C as main Target |
 |
The readblock
predicate error
|
 |
The flush predicate
generates the error "7006 Invalid Handle" under Windows NT/2000
for console output
|
 |
The trunc(X) predicate with a negative
X in Visual Prolog 5.x returns different result than in PDC Prolog 3.31
|
 |
Bug in the dirfiles predicate
|
 |
It is possible to move an opened file
created by the openwrite predicate under WIN 2000
|
 |
A
single fact cannot contain a class domain
|
 |
The filenameext predicate has
different behavior under 16-bit and 32-bit Windows
|
 |
Bug in the trap predicate
|
 |
Invalid 505 error message
while using the val predicate
|
 |
The term_str predicate fails
with (i,o,i) flow pattern
|
 |
div with a negative divisor problem
|
 |
Error in the consult
predicate
|
 |
Upgrading
one file projects from previous versions to Visual Prolog 5.2
|
 |
GPF,
while division by zero at DELL computers
|
 |
The existfile
predicate problem
|
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.
A problem with
multiple inheritance
R000313.003: FIX
If a class has more than one parent, then, while using an object of such
class for access to base class methods, the multiple inheritance engine does
not always work properly.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
An error
in using of a non-static object
R981116.04: Problem
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
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Bug with not(not( x ))
R000313.007: FIX
In the following example compiler deletes double not in Visual
Prolog 5.1 (build 564) and previous versions.
PREDICATES
nondeterm x(integer)
CLAUSES
x(1). x(1). x(1).
PREDICATES
not_test
CLAUSES
not_test :-
not(not(x(1))),
write("Hello"), nl,
fail.
not_test.
GOAL
not_test.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
Missed
detection of absence of local single fact initialization in the CLAUSES
section.
R000313.011: FIX
In some complex cases, the compiler cannot correctly detect that a LOCAL
SINGLE FACT was not initialized by one and only one clause.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
Fixed in Visual Prolog 5.1, build 565.
Bug
in the "Strong Type Conversion" check.
R990519.01: BUG
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 !
Version Info
The information applies to Visual Prolog 5.2, and previous versions.
The
command line compiler fails to generate an OBJ file, when -Z+ option is
specified
R990314.02: FIX
The command line compiler fails to generate an OBJ file, when -Z+ option is
specified, without a warning that -Z is not supported.
Version Info
The information applies to Visual Prolog 5.1, and previous versions.
Fixed in Visual Prolog 5.2.
If a
filename is longer than 32 chars, and one declares a predicate with a
procedure domain, the linker can not find this predicate
R990827.03: FIX
Version Info
The information applies to Visual Prolog 5.1, and previous versions.
Fixed in Visual Prolog 5.2.
Problems of
integer-valued calculations
R991129.01: FIX
By default, results of arithmetic operations with explicitly specified
integer-valued operands are treated as "unsigned".
This can lead to some sorts of problems. For instance, the following
example
goal Unsig = 1-2, write("Integer_value = ", Unsig).
instead of the expected correct value "-1" returns its unsigned
representation "4294967295".
Moreover, if you add a positive number to such intermediate value you will
get the error "119 Arithmetic overflow". For example:
goal Unsig = 1-2 + 3, % Result: the error "119 Arithmetic overflow"
Version Info
The information applies to Visual Prolog 5.1, and previous versions.
Fixed in Visual Prolog 5.2.
Workaround
Usage of variables in integer-valued expressions solves this problem. For
instance, the following example will work correctly:
goal
Int = 4, Unsig = 1-2 + 3 + Int, % Result: no errors
However, be careful, if the order of calculation will be specified using
parentheses, the error can occur:
goal Int = 4, Unsig = (1-2 + 3) + Int, % Result: the error "119 Arithmetic overflow"
Database
domain can be treated as a return domain in a predicate declaration
R990128.01: FIX
Example
database - dirtest
list(SLIST)
predicates
dirtest % <-- error 404 testline(ITEM)
clauses
dirtest:- % <-- error 404
Version Info
The information applies to Visual Prolog 5.2, and previous versions.
Bugs in Visual Prolog
classes
R990818.01: FIX
Bugs in Visual Prolog classes in some cases cause GPF.
Version Info
The information applies to Visual Prolog 5.1, and previous versions.
Fixed in Visual Prolog 5.2.
A
predicate type in the end of the predicates section is ignored, without
generating an error.
R991011.01: FIX
Version Info
The information applies to Visual Prolog 5.1, and previous versions.
Fixed in Visual Prolog 5.2.
Compiler
treats variable names, identical to some standard predicate names, as
predicate names
R990921.01: FIX
The following program generates a syntax error:
goal
Format = "1".
Version Info
The information applies to Visual Prolog 5.1, and previous versions.
Fixed in Visual Prolog 5.2.
Error in free gstack
R990920.03: FIX
It is difficult to give clear instructions on how to avoid the problem, but
if you use '_' instead of '_Name' for the void output arguments in the last
call of a clause, which only has input scalar arguments - you will avoid the
problem.
Example
predicates use_gstack(integer)-(o) p() clauses
predicates use_gstack(integer)-(o) p() clauses use_gstack(Y):- Y = 1, write("Y=",Y),nl, concat("","X",_),
% - THIS SPOILS Y, BECAUSE Y
% IS ON GSTACK !
write("Y=",Y),nl. p():- time(_,_,_,_), use_gstack(_OnceVar).
% Here Is the BUG % It works for '_'
% Last Call Optimization is active % Since there is a Void output variable % in the last call, this must be % placed on GStack % Since the Clause does NOT use GStack, % GStack is released just before % the last Call! % Bad Combination ! goal p().
Version Info
The information applies to Visual Prolog 5.1, and previous versions.
Fixed in Visual Prolog 5.2.
7087 error: Invalid Parameter
R990924.01 : FIX
The following program gives 7087 error in Visual Prolog 5.1:
database
d(string) predicates
p(string)
- procedure (i) clauses
p(S) :-
concat(S, "a", Sa),
assert(d(Sa)),
p(Sa),
p(S).
goal
p("a").
The problem takes place in some cases, when the default 100 MB GStack size
has been exceeded.
In Visual Prolog 5.2 the message "1001 GStack overflow " is
generated.
Version Info
The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.
A problem with a name of a static class predicate
R990722.01: FIX
If the following predicate:
p(integer) - procedure () language stdcall as "_P"
is declared in the section of static predicates of a class, the
"Unrecognized name" linker error is generated.
The reason of the bug is that "@4" is not added automatically, when
a predicate is declared in a class.
Version Info
The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.
General
Protection Fault error, when a big OBJ file is used
R000217.005: FIX
There exists a limit for total amount of relocations (fixups) in a segment
of an object file in COFF format. When the limit equal to 65536 is exceeded, a
GPF occurs.
Version Info
The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2. Since Visual Prolog 5.2, the following error
message is generated: "611. Too many relocations are detected for a
segment of an object file in COFF format".
Workaround
Make a compilation unit (project module) smaller, for example, by breaking
it into several compilation units.
Non-stable
GPF, while allocating memory for a new object
R990413.01: FIX
Version Info
The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.
Error in handling duplicate stack overflow
R990310.01: FIX
After catching an error 1010 "Stack Overflow" in trap, the next
call of the predicate with this 1010 error does not work correct and does not
give out the runtime error 1010 or does not catch this error in trap.
Version Info
The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.
A call of a method of
a class that is declared with "language stdcall" calling convention
leads to application crush
R990716.01: FIX
Version Info
The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.
The
Visual Prolog external database has different formats in 16- and 32-bit VDE
R950730.32: Problem
This is inconvenient and will be changed in one of future versions. 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 exception trapping in DLLs.
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
R990201: Problem
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.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
not(bound(_))does
not convert "fail" to "true"
R000313.012: FIX
Workaround
In most cases, it is possible to change:
 | not(bound(_)) to free(_) , |
 | not(free(_)) to bound(_) |
Version Info
The information applies to Visual Prolog 5.1, build 564.
Fixed in Visual Prolog 5.1, build 565.
str_len
predicate generates GPF if a negative value is passed to the Length variable
R000313.013: FIX
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
Fixed in Visual Prolog 5.1, build 565.
A problem
with the disk predicate, when the UNS
is used
R991126.01: FIX
The disk predicate does not work properly if a network drive is
not mapped.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
db_statistics problem
R991123.01: FIX
The db_statistics predicate does not work, when the program
containing it has been started from a UNC
path.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
Workaround
The bt_statistics predicate can be used if an index for a
database(s), where each record only has a single key, is used.
Invalid 505 error message while using the val predicate
R991221.04: FIX
When two user-defined domains are equivalent to the same standard Visual
Prolog domain, converting of one of the user-defined domains into another
with the help of the val predicate mistakenly causes 505 Type error:
"Illegal variable type for this position."
Example
domains
a = integer b = integer
predicates
p(a)
clauses
p(A) :-
B = val(b, A). % Wrong 505
goal
p(7).
Version Info
The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2
Easywin
does not support C as main Target
R970710.02: Problem
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
The readblock
predicate error
R990817.01: FIX
The readblock predicate generates the run-time error 1111:
"Wrong number of bytes read from file" if a number of bytes to
read exceeds 4096.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
The flush predicate
generates the error "7006 Invalid Handle" under Windows NT/2000
for console output
R990826.01: FIX
The flush predicate works differently under Windows95/98 and
Windows NT/2000. Under Windows NT/2000, the operating system raises an error
on flush calling with the console output device.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
Workaround
We recommend to avoid applying of the flush predicate for the
console output device (UI Strategy: Easywin, Textmode, VPI+Message window)
in 32-bit applications.
Bug in the trap predicate
R991028.02: FIX
Sometimes a term allocated in the first call in the trap/3 predicate
is spoiled in the third call to the errorhandler.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
The trunc(X) predicate with a negative X
in Visual Prolog 5.x returns different result than in PDC Prolog 3.31
R990818.03: Problem
The trunc truncates Value to the right of the decimal point,
discarding any fractional part. That is trunc "rounds Result
toward zero". Notice that in PDC Prolog 3.31 trunc
"rounds" Result toward minus infinity". In Visual
Prolog, the return domain of trunc predicate is the same as the domain of
its argument. The val function should be used to convert a real to an
integer.
In versions of PDC Prolog before the version 3.30, trunc returned
an integer.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
Bug in the dirfiles predicate
R980224.03: FIX
dirfiles(Wild, fa_subdir, F, _,_,_,_,_,_,_, _) does not work
correctly with Wild=".", "..". It returns
"false" instead of "true".
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
Under Windows 2000 it is possible to
move an opened file created by the openwrite predicate under WIN 2000
RRR0103.02: BUG
Under Windows 2000, it is possible to move an opened file, that was
created by the openwrite predicate (for 16-bit programs), within the
logical disk space.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
A
single fact cannot contain a class domain
R971023.01: BUG
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
The filenameext predicate has
different behavior under 16-bit and 32-bit Windows
R971009.01: Problem
Under 16-bit platforms, returned strings will be in the upper case.
Under 32-bit platforms, returned strings will contain letters in the same
cases as they were specified in the input strings.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
The term_str predicate fails
with (i,o,i) flow pattern
R990513.01:
In Visual Prolog 5.1 term_str fails in the cases like the
following:
Domains
a = b(integer); c()
goal
term_str(a,T,"c()") % term_str(a,T,"b(2)haha")
No error is generated.
In Visual Prolog 5.2 the error "1047 Invalid term (spoiled
memory)" is generated.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
div with a negative divisor problem
R990818.02: FIX
div with a negative divisor returns unsigned value for negative
results
Int = 4 div -3
returns
Int = 429…
Workaround
If we explicitly convert it with:
Sinned_Int = val(integer, Int)
the result will be correct: "-1 "/
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
GPF,
while division by zero at DELL computers
R000505.004: Problem
At some Dell computers, the Prolog exception handling engine (in 32-bit
VPI programs) cannot correctly catch division by zero like:
X = 0,
_Y = 5 div X,
Instead of the error 1032 "Division by zero", a program
generates the error 1009 "General protection fault" or even
silently disappears. The error was seen under Windows 98 and Windows NT
Service Pack 3/4.
GPF,
while compiling, caused by Visual Prolog incompatibility with QDCSPI.DLL
R000505.005: Problem
The VDE conflicts with QDCSPI.DLL from QarterDeck's CleanSweep (only
under Windows 95). The problem is seen like GPF, while compiling some files.
Workaround
The problem can be fixed by removing QDCSPI.DLL from the WIN95\SYSTEM
directory.
Note: CleanSweep can use QDCSPI.DLL from its home directory.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
Error
in the consult predicate
RRR0105.04: FIX
If the save predicate terminates with an error (e.g., "Disk
is full"), then after it, the predicate consult works wrong.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
The term_bin predicate problem
R980723.01: FIX
The term_bin predicate with the (i,i,i) flow pattern causes GPF in
the TestGoal
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
Upgrading
one file projects from previous versions to Visual Prolog 5.2
R000211.001: Problem
In Visual Prolog 5.2 the file and db_selector domains have
to be declared as global domains also in a one file project.
This was not the case in previous versions of Visual Prolog.
Therefore, such projects created by previous versions of Visual Prolog are
not built.
Workaround
It is necessary to declare the file and db_selector
domains as global domains in one file projects created by previous versions
of Visual Prolog.
Version Info
The information applies to Visual Prolog 5.2.
The existfile
predicate problem
R980224.02: FIX
existfile(Arg) with Arg=".", ".." returns
"fail" instead of "true".
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
The time predicate is not precise enough
R000413.004: Problem
The time predicate works with an underlying operating system. Some operating systems (some UNIX versions, for example) do not support high precision. Also, 32bits Windows system timing functions use miliseconds.
Recommended to users: There is QueryPerfomanceCounter API call under 32bits Windows that can be used for more high precision.
VDE Problems
 | Compiling of
unmodified non-Prolog modules |
 | Problem
with directories and files, which names contain spaces (Win32) |
 | Problem
with directories and files, which names contain spaces (OS/2 |
 | Conversion
of HAM to 5.0 format is irreversible |
 | Possible
BUG when updating source code with the help of Code Experts (Visual Prolog
5.1, build 564) |
 | Problem
with a non-existing Project name in a Command line |
 | Using
Ctrl-X, Ctrl-C or Ctrl-V in the Menu Editor |
 | Problem in the
multiprogrammer mode |
 | Wrong
generation of RES files for some bitmaps (Visual Prolog 5.1, build 564 and
previous versions) |
 | A
problem with Visual Studio 6.0 resource compiler. |
 | Bug with saving
changes in a project, when "AutoSave Project on Exit" option in
the Environment dialog is turned off (Visual Prolog 5.1, build 564 and
previous versions) |
 | Bug with saving
changes in a topic, when "AutoSave Project on Exit" option
in the Environment dialog is turned off. |
 | Problems with
read-only .PRJ files (Visual Prolog 5.1, build 564 and previous versions) |
 | Help
Maker: a problem with importing .RTF files containing graphics |
 | HCP Help Compiler hangs Visual Prolog
if root VIP directory name is longer than 8 characters |
 | The "Help
Topics" window is not initially activated when WIN32 on-line Help is
run |
 | A
Windows Help Compiler is set by default in the Application Expert while
creating an OS/2 project |
 | A printing problem (Visual Prolog 5.1,
build 564 and previous versions) |
 | Default
setting for "Convert ANSI to OEM" in the Compiler Options dialog
(Visual Prolog 5.1, build 564 and previous versions) |
 | Under Windows 95/98 a horizontal
scrollbar is missed in the MDI menu Window|More Windows-> "Select
window" default dialog (Visual Prolog 5.1) |
 | Checking ON the
"Print Menu in DOS .EXE" in the VDE does not set -p option for
the Compiler |
 | CTL3D32.DLL problem |
 | GPF at the Help compiling
stage in the Windows version of the VDE after changing a target platform
from "OS/2 32-bit" to "Windows 32" |
Compiling
of unmodified non-Prolog modules
Problem
- 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.
Version Info
The information applies to Visual Prolog 5.2 and previous
versions.
-
Problem
with directories and files, which names contain spaces (Win32 platforms)
R990910.01: FIX
The VDE, the linker and the compiler have problems with using external
compilers and linkers placed in directories, which names contain spaces.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
Workaround
Things work if you manually modify the scripts.
If you refer to the path in your code, the names that include spaces
should be surrounded by internal \"\", like
"\"C:\\Program Files\\Visio\\Visio 32.EXE\""
A little trick you might use, if you have some tools installed in
the "Program Files" directory, is that you instead refer to the
short DOS name, e.g. "C:\PROGRA~1\MICROS~4\VC98 ".
If you want to find exact short names of MSVC tools installed in the
"Program Files" directory at your computer, please, see \Program
Files\..\BIN\VCVARS32.BAT.
Recommendations
Do not install Visual Prolog 5.1 and previous versions 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.
-
Problem
with directories and files, which names contain spaces (OS/2 platform)
Problem:
Under OS/2 if a hard disc with HPFS formatting is used, The VDE, the
linker and the compiler have problems with using project and external
tools placed in directories, which names contain spaces.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
Workaround
Things work if you manually modify the scripts.
If you refer to the path in your code, the names that include spaces
should be surrounded by internal \"\", like
"\"C:\\Program Files\\Visio\\Visio 32.EXE\""
Recommendations
Do not install Visual Prolog 5.2 and previous versions 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.x format is irreversible
R000316.005: Problem
After conversion of a .HAM file in an old format (3.x or 4.x versions) to
the 5.x format by VIPCONV.EXE, the .HAM file can not be converted back to
the 4.0 format.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
Possible
BUG when updating source code with the help of Code Experts
R000316.006: FIX
In some circumstances (a large source file and a relatively slow
computer), there is a significant delay while the source file is being
updated. If during this time, you hit the Edit Code
button, then the source update can be wrong, because a Code Expert initiates
a new update operation while the previous one is not finished.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
The problem was solved in Visual Prolog 5.1, build 565.
Workaround
- Avoid using large source files.
- Check, whether the previously activated Code Expert action had been
accomplished before you activate new Code Expert action. These actions
are: "OK", "Edit Code", "Delete Code",
"Declaration", "Layout", "Add Clause", and
"Update Code".
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.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
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.
Version Info
The information applies to Visual Prolog 5.2 and previous
versions.
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 were no changes in a resource (dialog,
menu etc.) if a project was opened from a .PRJ file.
Version Info
The information applies to Visual Prolog 5.1 and previous
versions.
Fixed in Visual Prolog 5.2.
Wrong
generation of RES files for some bitmaps
See description
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
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.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Bug with saving
changes in a project, 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 changes were done using Dialog Attributes, Window
Attributes, or Toolbar Attributes dialogs:
- The Question dialog "Save current project" is not invoked on
exit, except the cases when:
 | Constant names were changed; |
 | "Storing in Separate File" flag was turned ON/OFF.
|
- Any changes in the dialogs Dialog Attributes, Window Attributes, and
Toolbar Attributes are not saved on exit, except changes of constant
names and a "Storing in Separate File" flag state.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
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.
Problems 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.
- After choosing Project | Save Project menu item, the following invalid
message is generated in the Message window:
Project <PrjFilePath>.PRJ saved
Version Info
The information in the item 2 applies to Visual Prolog 5.1, build 564,
and previous versions.
In the build 565 the following message is generated:
"Project components have been saved"
Help
Maker: a problem with importing .RTF files containing graphics
R961217.08: Bug
The current version of the Visual Prolog does not allow to import .RTF
files containing graphics. An attempt to import an .RTF file with embedded
objects causes the necessity of restarting Visual Prolog.
Workaround:
It is possible to replace embedded objects in the source .RTF file with
the references to image files.
- Save each graphic object from the source .RTF file like a separate
graphics file.
- Copy graphics files to the directory chosen for bitmaps in the Options
| Help Maker Options (RES by default).
- Replace graphics in the source .rtf file with references like:
{bmc winsock.bmp}
- Import an .RTF file.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
16-bit MS Help Compilers hang Visual
Prolog if a root VIP directory name is longer than 8 characters
R980519.01: FIX
16-bit MS Help Compilers hang Visual Prolog DOS session while compiling
Help if root VIP directory name is more than eight characters.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2.
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.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
Workaround
Please see a detailed description.
A
Windows Help Compiler is set by default in the Application Expert while
creating an OS/2 project
R000209.010: Problem
A Help Compiler, that is an external tool, does not belong to a project.
The VDE uses a Help Compiler set by default or for a previous project until
a user manually change it.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
Workaround
Manually change a Help Compiler name in the "Help Maker" tab of
the Application Expert (Ctrl+A). Check and change, if necessary a
path to this compiler in the External Tools Directories dialog
(Options|Global|External Tools Directories menu item).
A printing problem
If you print several pages beginning with the page different from the
page number one, the first page of a range is spoiled.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
Default
setting for "Convert ANSI to OEM" in the Compiler Options dialog
R990226.01
In the versions previous to Visual Prolog 5.1, build 565 the
default setting for "Convert ANSI to OEM" option in the Compiler
Options dialog is ON. This causes problems with handling of non-English
characters, because the second part of the code table is unavailable.
Workaround
Uncheck the "Convert ANSI to OEM" option.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
Since the build 565, the default setting of the option is OFF.
Windows 95/98 in the MDI menu
Window|More Windows-> "Select window" default dialog do not
have a horizontal scrollbar.
R990827.01
As a result, filenames with long Paths do not fit into window
client area. This prevents selection of windows correspondent to these files
by users.
Version Info
The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.
Workaround
User application can catch window native message:
e_Native(wm_command(9309,_)...)
and display user dialog that can be resized.
Checking ON the
"Print Menu in DOS .EXE" in the VDE does not set -p option for the
Compiler
R990314.01: FIX
Checking ON the "Print Menu in DOS .EXE" in the "Compiler
Options" (Options|Project|Compiler Options|Code Generation) does not
set -p option for the Compiler! So, Alt+P does not activate (Print / Log
file) menu.
Version Info
The information applies to Visual Prolog 5.1.
Fixed in Visual Prolog 5.2.
GPF at the Help
compiling stage in the Windows version of the VDE after changing a target
platform from "OS/2 32-bit" to "Windows 32"
R000526.005: BUG
The following sequence of actions in some cases causes GPF
("hcrtf.exe - Application Error…. The memory could not be
read..." error message).
- In the Windows version of the VDE create a project with
"OS/2" as a target platform.
- Choose "Topics" in the Project window and create Help
topics.
- Choose Project|Rebuild All menu item.
- Choose Options|Project|Application Expert menu item (CTRL+A).
- Change a target platform in the "Application Expert" from
"OS/2" to "Windows 32".
- Choose Project|Rebuild All menu item.
The reason of the problem is that HCRTF Windows Help Compiler cannot
resolve the font styles, stored in the RTF file for OS/2 and fails.
Workaround
To avoid the error, define font style that will be compatible between
OS/2 and Windows. Note that OS/2 Help system allows only 4 predefined fonts:
default, Tms Rmn, Courier and Helv.
Version Info
The information applies to Visual Prolog 5.2.
Creating of a multiprogrammer project with the name of an existing
multiprogrammer project and in the same location causes overwriting of all
source files of an existing project
R000221.001: Problem
If a new multiprogrammer project is created with the name of an existing
multiprogrammer project and in the same directory, where the old project is
located; all prolog source files will be overwritten without any warnings
after the "Overwrite" button in the warning "File
'<project name>.prj' exists already" is pressed.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
VPI Problems
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.
win_GetText
bug for a multi-line edit control in OS/2
If a multi-line edit control is created using win_SetText
with a string more than 1K, win_GetText truncates the text
to about 1K.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
Bug in win_Move
for task window
Top is set lower than expected.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
pict_Open causes
the error 6000
If pict_Open is used in a DLL with a console .EXE, the error 6000
"Bad window handle" is generated.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
pict_Open
causes window caption and main menu flickering
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
mf_Load/3 BUG under Win32
Predicate mf_Load/3 returns invalid rectangle values if
a metafile contains negative coordinates.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
vpi_CreateProcess:
notification bug for 16-bit GUI applications under WIN NT.
While running 16-bit GUI application from 32-bit VPI application using
vpi_CreateProcess, e_EndApplication comes to windows event handler
before closing it.
Version Info
The information applies to Visual Prolog 5.1, build 564, 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.
Version Info
The information applies to Visual Prolog 5.2 and previous versions.
win_GetState returns wsf_Titlebar in a
wrong way
If window has a border, the predicate win_GetState
returns wsf_Titlebar no matter, whether window has a title
bar or not.
Version Info
The information applies to Visual Prolog 5.1, build 564, and previous
versions.
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.
Different behavior of dlg_getFileName on different Windows platforms
R990920.02: Problem
if StartPath = "", the algorithm for
selecting the initial directory varies on different Windows platforms. The
reason of the problem is the underlying Windows API.
See: MSDN Library, OPENFILENAME topic, lpstrInitialDir.
Version Info
The information applies to Visual Prolog 5.2, and previous versions.
dlg_printSetup
predicate conflicts with a third-party printer driver
R000410.010: Problem
Some third party printer drivers (that are not approved by Microsoft for
the correspondent version of Windows) can conflict with the predicate dlg_printSetup.
For example, dlg_printSetup predicate conflicts with a HP 4000
PCL6 printer, when hp4000 driver (Danish version for Windows 95) is used.
The same printer with hp5mp driver demonstrates no problems.
Version Info
The information applies to Visual Prolog 5.2, and previous versions.
sMAPI_SendMail
predicate changes a current directory
R000217.004: Problem
sMAPI_SendMail predicate changes a current directory. This can
cause different errors. In some cases, such behavior of sMAPI_SendMai can be
useful.
Workaround
To avoide the problem sMAPI_SendMail should be called in the following
context:
disk(CURRDIR),
RC = sMAPI_SendMail( ... ),
disk(CURRDIR),
Linkers Problems
An
internal error while importing DLL functions
Importing of DLL functions with extensions different from .DLL (e.g.
winspool.drv) causes an internal error.
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Visual
Prolog 5.x does not support Visual Studio 6.0 format for Import libraries
Visual Prolog 5.x supports only Visual Studio 5.0 format for
import libraries.
Workaround:
Use the compatibility option in Visual Studio 6.0 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
Version Info
The information applies to Visual Prolog 5.1 and previous versions.
Fixed in Visual Prolog 5.2. The -s<StackSize>
Linker option that sets the initial stack size for the generated module
to the specified StackSize number of bytes has been added.
Workaround for Windows:
It is possible to edit the STACKSIZE parameter in a DLL/EXE with the help
of MS EDITBIN.EXE: EDITBIN.EXE /STACK:newsize FILE
Workaround for OS/2
The only solution under OS/2 is changing of a linker.
Debugger Problems
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.
GPF, while debugging caused by incompatibility of Visual Prolog with a
third party tool
R000505.006: Problem
Visual Prolog Debugger conflicts with some old versions of POINT32
software (only under Windows 95). Note that Microsoft MSDN documentation
(ID: Q148137) reports about conflicts of this IntelliMouse software with
some other products, for instance, with CorelDraw version 6 and even with
Microsoft Visual Basic. The problem is seen as GPF in the Debugger.
Please, contact Visual-Prolog
Support if you come over this problem.
Symptoms
 | The problem is reproducible. |
 | The problem does not disappear after Visual Prolog reinstallation. |
 | The problem disappears, when you start Windows in Safe mode. |
Version Info
The information applies to Visual Prolog 5.1.

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