<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.visual-prolog.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bcent1234</id>
	<title>wiki.visual-prolog.com - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.visual-prolog.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bcent1234"/>
	<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Special:Contributions/Bcent1234"/>
	<updated>2026-04-11T14:58:52Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=IDE_Variables&amp;diff=665</id>
		<title>IDE Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=IDE_Variables&amp;diff=665"/>
		<updated>2007-11-09T14:21:58Z</updated>

		<summary type="html">&lt;p&gt;Bcent1234: minor typos.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In the IDE you can define so called IDE variables. Here I will describe one good place to use such a variable. &lt;br /&gt;
&lt;br /&gt;
Over time most programmers, teams, companies, etc build up a set of software packages, which are used in many projects. Sometimes these packages are simply copied from one project to another, but this leads to many copies of (nearly) the same software. And each time you find a bug or make an improvement you have to make it many places. &lt;br /&gt;
&lt;br /&gt;
Eventually, you decide to share these packages instead of copying them. I.e. you will only have one copy of these packages on the disk. This means that the packages will lie outside the projects, rather than inside them. &lt;br /&gt;
&lt;br /&gt;
You will discover that it is not a good idea to reference such shared packages by an absolute path (like c:\sharedTools\tool1\tool1.pack), because that fixes the placement on the disk, which makes restructuring of the disk difficult and all team members will need an identical disk layout. &lt;br /&gt;
&lt;br /&gt;
Instead, you may use relative paths (like ..\sharedTools\tool1\tool1.pack), this is a little better, because you can at least choose a different top level directory (and therefore for example different disk drive). &lt;br /&gt;
&lt;br /&gt;
But still the placement of the tools is locked relative to the projects, and this has some of the same drawbacks as the fixed placement approach above, only a little less limiting. &lt;br /&gt;
&lt;br /&gt;
As an example you can use an IDE variable to increase the flexibility, i.e. let us name the file $(Tools)\tool1\tool1.pack. To do this you must define the IDE variable $(Tools) and then you must make $(Tools) an include directory in the project settings. &lt;br /&gt;
&lt;br /&gt;
When the include paths use IDE Variables, the project tree will also reflect this. &lt;br /&gt;
&lt;br /&gt;
If you decide to move the shared Tools to another place, you can just do it and then redefine the $(Tools) variable. IDE variables are shared across all projects, so this update only has to be done once to work for all projects. Different people in a team can have the tools directory in different places, because each person has their own $(Tools) variable. &lt;br /&gt;
&lt;br /&gt;
This strategy has long been used for the IDE variable $(ProDir) which always points to the Visual Prolog installation directory of the current compiler.&lt;br /&gt;
&lt;br /&gt;
[[ru:IDE: Переменные]]&lt;br /&gt;
[[Category:IDE]]&lt;/div&gt;</summary>
		<author><name>Bcent1234</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Error_c218:_Unknown_class/interface_%27%25%27&amp;diff=664</id>
		<title>Error c218: Unknown class/interface &#039;%&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Error_c218:_Unknown_class/interface_%27%25%27&amp;diff=664"/>
		<updated>2007-11-08T21:40:41Z</updated>

		<summary type="html">&lt;p&gt;Bcent1234: typo fixing, minor grammar, extra links.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When this compiler error occurs it is often surprising to the programmer.  The reason is that the [[IDE]] does what it can to protect you from this problem.&lt;br /&gt;
&lt;br /&gt;
When you write:&amp;lt;vip&amp;gt;class xxx : inputStream&lt;br /&gt;
    ...&amp;lt;/vip&amp;gt; the interface &amp;#039;&amp;#039;&amp;#039;inputStream&amp;#039;&amp;#039;&amp;#039; must be &amp;#039;&amp;#039;known&amp;#039;&amp;#039;.  If it is not known you will receive the mentioned error.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The interface is known if the file that defines this interface is &amp;#039;&amp;#039;included&amp;#039;&amp;#039; by the [[pack file]] that is being compiled.  Very often you don&amp;#039;t have to worry about [[include directive]]s, because the [[IDE]] inserts them automatically for you (the behaviour is controlled by a [[IDE Settings|setting]] in the [[IDE]]).  If the relevant interface has been met in the project (during compilation), the [[IDE]] knows which include directive to insert to make the interface known.  So the [[IDE]] inserts the include directive and re-compiles the relevant pack file.  The error disappears and you will not see it at all.&lt;br /&gt;
&lt;br /&gt;
If however the interface has not been met at all the IDE does not know which include directive to insert and the error will remain.  And this is the situation in which you will see the error message.  This is where you might ask yourself: &amp;quot;I have written like this many times before, and that never gave such a problem.  So why now?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
There are two ways to get rid of the error:&lt;br /&gt;
#Either you type in the include directive yourself in the relevant place&lt;br /&gt;
#Or you add the package that contains the interface/class and compile again, because then the interface/class is suddenly known and the IDE will insert the include directive.&lt;br /&gt;
&lt;br /&gt;
[[ru:Error c218: Unknown class/interface &amp;#039;%&amp;#039;]]&lt;/div&gt;</summary>
		<author><name>Bcent1234</name></author>
	</entry>
</feed>