![]() |
Visual FlagShip 6: Frequently Asked Support Questions |
(last revised 10-Mar-2006)
Note: General FAQs, screenshots and specs are available in vfs.html and
in faq_fs.html .
General technical/support/programming
FAQs are available in faqsupp.txt
covering FS4 and textual/terminal i/o mode of VFS6.
Q: Which
platforms are supported by FlagShip?
A: FlagShip
ports are available for 32-bit MS-Windows,
different Linux systems,
and nearly all commercial Unices.
The source code and data remain 100% compatible - you only need to recompile
on the target system.
Q: Is there a
free Test/Demo/Eval version of FlagShip available?
A: Yes, click
on http://www.fship.com/eval.html,
fill-in and submit. You will get free, fully working and supported FlagShip
version for a 30 days evaluation period. For prices of the licensed version,
see current price list starting
at EUR 220 (approx. US$ 260).
Q: Is FlagShip
professionally supported?
A: Of
course. Not even that: we grant 6 months free technical
support, see http://www.fship.com/support.html for
details and support terms. Simply address your request to
support@flagship.de,
we usually react promptly (within hours, not days).
Q: Can
I freely distribute my applications?
A: Yes,
FlagShip creates stand-alone, native executables. With the usual PRO
license, you may freely transfer or distribute your application
to your own conditions, there are no limitations nor run-time
fees.
For your convenience, there are scripts available (distribute.sh or
distribute.bat) to smoothly prepare your distribution. Applications
created by the Personal or Eval/Demo license can only be executed
on the same system where the FlagShip development package resides.
Q: Can
I use the FlagShip package on different computers or by different developers?
A: You of course may install the licensed
package in your office and on your notebook or at home. But
same as with any other commercial software, you should not share one license/package
by different users (programmers). If you need so, discounted add-on
licenses are
available. Please consider the license terms.
The produced executables are of course freely transferable or distributable,
see previous question.
Q: How
far is FlagShip compatible to Clipper?
A: FlagShip
is 100% (*) source and database compatible to
all Clipper versions, from Clipper '87 to 5.3. Since FlagShip has far more
features, you may see Clipper as a subset of FlagShip .
Also Clipper's NT2/CA3 Library is supported by FlagShip's FS2 Toolbox as far
as possible. (*
To avoid disputes: please don't understand the "100%" statement
absolutely, since nothing in IT is absolutely 100%, even Clipper is not 100%
compatible to other versions of itself).
Q: Can FlagShip compile my FoxPro sources?
A: Yes
for both DOS/Unix FoxBase and MS-FoxPro 2.5 to 2.6, when the -fox compiler
switch of FlagShip is used. You will need to export the FoxPro project to .prg
sources and databases to dBaseIII+ compatibility (or use special Fox RDD).
Since FoxPro syntax may differ heavy from standard xBase, and since FlagShip
is a true compiler (as opposite to interpreter), some commands and functions
are treated differently from Clipper and/or are user modifiable in the foxproapi.prg
source, or will need small adaption. See also .../include/stdfoxpro.fh and
appendix of fsman for additional details. To transfer .frx + .frt reports
to .prg source, you may use the frx2prg utility.
Q: Can I use
Third Party Libraries ?
A: Yes,
you may use any 3rd party library available in source code
(.prg or .c) by re-compiling it with FlagShip.
You also may use any C library (.lib, .dll, .a, .so) when
created with the same C compiler you are using with FlagShip.
But 16bit libs and objects (e.g. for DOS, Clipper etc) are
not applicable for 32bit (or 64bit) systems and can only be used with
FlagShip when you own the source. If your special 3rd party library
is available in object only (*.lib), contact the manufacturer for it
FlagShip port, or check for alternatives (e.g. the FS2
Toolbox, 3rd party
tools and RDDs for
Flagship etc).
Q: Do you have
any how-to porting instruction ?
A: Yes,
please read section LNG.9.6 for Linux or LNG.9.7 for MS-Windows
in the on-line manual fsman (or in the PDF manual)
for step-by-step description. Additional info is available in <FlagShip_dir>/docu/how-to*
documents where the <FlagShip_dir> is your installation path.
Q: Which input/output modes are supported by FlagShip ?
A: FlagShip has three different i/o engines for GUI, Terminal and Basic input and output. You may specify the required type at compilation/link time by -io=g, -io=t or -io=b switch. If nothing is given, a hybrid application is created and the i/o mode is determined at run-time either automatically or by the same switch in command-line parameter of your application. The use, advantages and differences of these different i/o modes is described in detail in fsman section LNG.5.3 and LNG.9.6-9.7
Q: After smoothly re-compiling my Clipper (FoxPro) application to FlagShip, the screen output/coordinates do not match. Why?
A: In Terminal
i/o mode, the coordinates are same as in Clipper/Fox and the application should
behave equivalently. In GUI mode, FlagShip uses your default GUI font which
is usually proportional (the letter "X" is wider than "i" or
space). The easiest way is to use fixed font, i.e. specifying SET
FONT "courier" at the begin of your main (you may enclose
it in #ifdef FlagShip ... #endif to stay backward/cross compatible to Clipper).
Otherwise you may use pixels (the PIXEL clause) or calculate the column position
according to text width, e.g. by using the Strlen2col(), Strlen2pixel(), Strlen2space(),
Col2pixel() functions. You also may control the line height by using pixels,
decimal fractions of row() or re-define default settings from .../system/initio.prg.
For further details, refer to fsman section LNG.5.3, LNG.9.6-9.7, CMD
and FUN as well as the examples directory. Note: for Foxbase/FoxPro sources,
use the
-fox compiler switch, see above and fsman section FSC.1.3.
Q: Why are the lines from @...BOX or @..TO or PC8-semi-graphics not displayed in GUI (graphic) mode ?
A: In GUI mode, FlagShip use widgets (controls) for dialog classes like Tbrowse, Browse(), Achoice(), Alert() and so forth. Since these widgets usually have own frames, the programmed output of lines and boxes is suppressed in this i/o mode. You may enable it at any time by using SET
GUITRANSL command, see section LNG.1.2, LNG.5.3 and CMD.SET in fsman for further details.
Q: Why are the
lines from @...BOX or @..TO or PC8-semi-graphics displayed in Terminal
(textual) mode as ÄÄÄÄ ?
A: In Terminal i/o mode, FlagShip uses the standard Curses library to handle screen oriented input/output. In Unix/Linux the only requirement is, your environment TERM (or FSTERM) and TERMINFO (or FSTERMINFO) is set correctly, see sections FSC and REL in fsman for further details. You may preferably invoke your application via "newfswin ./a.out [-io=t]" script being in X11/KDE/Gnome (or "newfscons" or "newfsterm" for plain textual console or remote terminal respectively) which sets the environment for you automatically. In FlagShip for MS-Windows, you only need to set the Font in "Command Prompt Properties" window (by right mouse click) to one supporting PC8 character set, e.g. to Lucida Console.
Q: Why are my colors not displayed in GUI mode, while Terminal i/o is ok?
A: FlagShip follows the common GUI design rules which recommends to use colors very carefully. The heavy use of colors, common in textual applications, would look awful in GUI mode and is therefore disabled there by default. To use colors in GUI mode, either use the special GUICOLOR clause available in many commands like @..SAY, or enable it generally by SET
GUICOLORS ON. See further details in fsman section LNG.5.3 and CMD.
Q: Where is the
difference between ASCII, OEM and ISO, ANSI character set vs. Unicode?
A: Fundamentally,
computers just deal with numbers. They store letters and other characters by
assigning a number for each one. ASCII or ISO character set is stored in one byte (8 bits), hence can display 255 different
characters. Internalization is provided by different character
set (ISO) or by code pages in Windows. FlagShip supports different character
sets (default is PC-8 ASCII or ISO-8859-1), and provides an automatic conversion between
ASCII (OEM) and ISO (ANSI) charset, see details in the manual section LNG.5.4.
Unicode is the universal character encoding
standard used for representation of text for computer processing and
provides codes for 96,447 characters stored in
8, 16 or 32-bits.
The common UTF-8 Unicode
stores data in variable length encoding, where the lower 127 characters corresponds
to ASCII charset. Other (national) characters are converted (encoded) by the
software. FlagShip uses Unicode internally in GUI mode and ASCII/ISO in textual/basic
i/o mode, the .prg source and databases are handled and stored in ASCII (OEM)
or ISO (ANSI) mode.
Q: Is FlagShip
compatible to RedHat 7, 8, 9 and FedoraCore?
A: Yes for
all versions of RH7, RH8 and RH9 or Fedora Core. Since these versions are
not compatible to each other, there are different VFS ports available, please
see "Whats' new" and the
Linux.html page for the download link.
Q: Is FlagShip
compatible to SuSE 7, 8, 9 and 10?
A: Yes
for all versions, including the glibc-2.3 and gcc-3.2 based SuSE 8.2
or 9.x and SLES, as well as gcc 4.x based SuSE 10.x. You may download it
here.
Q: Is FlagShip
compatible to other Linux distributions?
A: Yes for
all known current versions of Caldera, Mandrake (Mandriva), Conectiva, Debian,
Slackware, Ubuntu, Knoppix and so forth. You only need to select proper FlagShip
port corresponding to your Linux version.
Q: Is FlagShip
compatible to 64bit Linux?
A: Yes,
please click here for
further details.
Q: Can I run
FlagShip on FreeBSD?
A: Yes,
you can. But since there is no special FreeBSD port of FlagShip, you will
need to develop/compile your sources on Linux, link statically and then
execute it in your FreeBSD box. See additional details about the Linux compatibility
in the FreeBSD Handbook chapter 20 (linuxemu-lbc-install)
- or in the extract from available in OReilly's linuxapps .
Q: With RH8/9/Fedora,
the PC8 semi graphic lines using @..TO..DOUBLE are not displayed in terminal
(text) mode. Why ?
A: RedHat
8.x and above use Unicode charset now for the (plain) terminal mode instead
of the VGA/ASCII char set. You may preferably start the application via
newfswin (or newfscons or newfsterm) script,
which sets the environment automatically. Otherwise disable Unicode in /etc/profile.d/lang.sh
by commenting-out the following line to read:
# unicode_start $SYSFONT $SYSFONTACM
See further details in
the Linux How-to's: "zless /usr/share/doc/howto/en/Keyboard-and-Console-HOWTO.gz" . You
also may set LANG=en_EN or LANG=en_EN.ISO-8859-1 (or your national LANG/ISO).
Q: Where are
my umlauts and boxes after updating to SuSE 9.1 and later?
A: Similar
to RedHat, SuSE changed in 9.1 the default console locales to Unicode (UTF-8),
but the setup differs from RedHat. Best to invoke YaST -> System -> Language
-> Details and disable the UTF-8 checkbox. Thereafter,
a new login (or reboot) is suggested. You also may either run the application
via newfswin from KDE console (or via newfscons on textual console)
or set manually the environment variable LANG=en_EN or LANG=en_EN.ISO-8859-1 and/or
if available LC_CTYPE=en_EN.ISO-8859-1 (or your national LANG/ISO).
Q: With
gcc 3.4, I get compiler warnings, but not with earlier gcc releases.
Why?
A: Unfortunately
is gcc often incompatible to other releases of itself. The displayed gcc
3.4 warning "cc1:
note: -fwritable-strings is deprecated; see documentation for details" is
harmless and can be ignored. This warning does not occur anymore in the newer
FlagShip ports for gcc 4.x
Q: When logged as regular user, everything works fine. But after issuing 'su' I get error saying "connection to 'xyz:0.0' refused by server"
A: This is default X11 security to avoid re-connecting by others as root. There are several choices to manage this, the easiest is to set in the user's ~/.bashrc
or ~/.profile
xhost +
or
xhost +localhost
(in dependence on the used Linux version), and log-in anew.
Q: Does FlagShip use termcap or terminfo? I get message "/etc/termcap, line 8561: terminal 'xxx' unknown..."
A: FlagShip uses the more advanced Terminfo for terminal i/o based application (see "man curses" or "man ncurses" for details). But some Linux distributions have missing link to /usr/lib/terminfo,
set it by:
su
ln -s /usr/share/terminfo /usr/lib/terminfo
exit ## the su mode
You also may set
"export FSTERM=fslinux" or in GUI
environment "export FSTERM=fslinxterm" and
"export FSTERMINFO=/usr/local/FlagShip6/terminfo".
If you are running Terminal i/o based application from GUI/X11 environment
(e.g. console in KDE or Gnome), you may preferably invoke "newfswin
applicName [-io=t]" which automatically set the
environment, see details in fsman section REL. You alternatively may
study or modify the
/usr/local/FlagShip6/bin/newfs* scripts.
Q: After
upgrading to new FlagShip version,
the colors and semi-graphic characters in Terminal i/o do not fit anymore
A: Most
probably, you have installed FlagShip in "compatibiliy mode" to previous
releases, where the new terminfo database is hold locally in /usr/local/FlagShip6/terminfo directory.
If so, set the environment variable export FSTERMINFO=/usr/local/FlagShip6/terminfo -
or don't use the compatibility setup mode. See also fsman ReleaseNotes section
3.e for details.
Q: Why the linker cannot find X11 library and exits with error ?
A: In some Linux distributions, there
is a missing link. Check by " ls -l /usr/X11R6/lib/libX11* " which
should display:
-rw-r--r-- | ... | /usr/X11R6/lib/libX11.a | |||
lrwxrwxrwx | ... | /usr/X11R6/lib/libX11.so -> libX11.so.6.2 | (or later version) | ||
-rwxr-xr-x | ... | /usr/X11R6/lib/libX11.so.6.2 | (or later version) | ||
as well as " ls -l /usr/lib/libX11.a " which displays | |||||
lrwxrwxrwx | ... | /usr/lib/libX11.a -> /usr/X11R6/lib/libX11.a |
Q: Does
FlagShip use native X11, Motif or MS-Windows toolkits for GUI?
A:
Not directly. To ensure the cross-platform compatibility, FlagShip use
the Qt toolkit as an interface to GUI. For Terminal based i/o, the Curses
library is used. For other system relevant calls, only the standard C system
libraries are required.
Q: Do I
need to install or license the Qt Development Package?
A:
You don't need. FlagShip uses commercially licensed Qt. All the by FlagShip
used Qt parts are already available in the FlagShip6.{a,so,dll,lib} library.
This allows you to create your own (FlagShip Pro based) commercial applications
without any restrictions. Only if you should need to access the Qt modules/classes
directly at low level (i.e. not via FlagShip's standard classes and functions),
you will need your own Qt developer's license. For further Qt licensing
details, see http://www.trolltech.com
Q: Can
FlagShip's Qt version conflict with my KDE, based probably on another Qt
release?
A: It
cannot, since the FlagShip based application use either the dynamic libFlagShip6.so
or the static libFlagShip6.a library which is without any inheritance to
libqt.so.* used by KDE.
Q: Can I simply change/replace the gcc version to newer release?
A: Conditionally only,
valid mostly for the minor release number. You may usually not switch the gcc
compiler without the corresponding libs, at least libc.a/so. Since the whole
kernel (and all Linux utilities) depends on libc, it can be a dangerous task.
Also the libFlagShip.a/so communicates with libc, so these must match to each
other. Especially the gcc 3.x produces different objects from gcc 2.x (and
gcc 4.x differs from gcc 3.x), hence these may not be mixed. Also in some
RH distributions, different gcc compiler (and library) is used, see details here.
In doubt, always consult the release notes of gcc, here an extract from:
"...changes between gcc 2.x and gcc 3.1 were comprehensive, including changes
to name mangling, exception handling, and class layout and alignment. The
changes between 3.1 and 3.3 are much smaller, but are still large enough to
prevent a mixed C++ program from operating correctly. Do not link C or C++
modules compiled with one of these compilers against modules compiled with
any of the other two compilers. Even if the modules appear to link correctly,
C++ ABI differences may still cause problems that will not manifest themselves
until run time...". The general rule of thumb is: to avoid headaches,
use the compiler and system libs supplied with the Linux distribution, or
update the whole Linux release/distribution instead of gcc or libc only. And
use FlagShip port corresponding
to this gcc / glibc.
Q: Do I need to buy new FlagShip after updating Linux to newer release?
A: No, you don't need Depending
on the new/updated Linux/gcc/glibc version (see above),
you probably will need to update the FlagShip compiler and library, check
here for details. Your activation key remain valid also for other version
of the same FlagShip main release. After downloading the media (or get a CD-ROM),
un-install the old version by FS6uninstall or FS5uninstall (or FSuninstall for
FS4.48) and install anew, it takes two minutes only. You may try first to compile
some trivial source like ? "hello world" ; wait and
execute by ./a.out When you get suspicious messages like "corrupted
serial number", "segmentation fault" and so on, you will definitely
need to update your FlagShip to correspond to the used operating system.
Q: Is FlagShip
available also for MS-Windows?
A: Yes, there
is a native port of Visual FlagShip for MS-Windows NT4, 2000, XP and 2003 available.
Your source and data remain 100% compatible and portable to other operating systems,
like Unix or Linux.
Q: Where
are the differences between MSVC6 and BCC32 port?
A: There
are some, but not very significant differences between these C compilers
and accompanying run-time libraries. All of them are already
considered in FlagShip compiler and library (therefore different ports),
so you should not detect any in your application. The only mentionable
is the amount of simultaneously open files: MS-VC6++ supports max. 2046,
whilst the free BCC32 only 50 open files at a time per task.
However, this usually should not create problems, since sufficient for
25 simultaneously open databases each with index file (and this for any
number of users); otherwise you can programatically close unused
databases and re-open any time later.
Q: Can
I use the same activation key for both MS-VC6++ and BCC32 ports?
A: Yes, you
can. But please consider the license terms,
you may install the FlagShip development package on one hardware only.
The produced executables are of course freely transferable or distributable,
see more above.
Q: Can
I use Borland BCC with Microsoft MS-VC6++ libraries (and with FlagShip
port for MS-VC6++) ?
A: You cannot. Both Microsoft and Borland
use different, incompatible object format (COFF vs. OMF). Unfortunately the
Borland's converter IMPLIB and COFF2OMF does not work here, since it does
not handle C++ modules used in the GUI.
But there are ports of Visual FlagShip available for both platforms.
Q: Can
I use Microsoft .NET C compiler (MS-VC7) instead of MS-VC6++ ?
A: Sorry, you cannot. Both Microsoft
compilers are incompatible to each other and produce different objects.
But if you haven't MS-VC6++ you can use the free Borland BCC32
compiler.
Q: When
compiling with BCC port of FlagShip, the linker reports "Fatal: Unable
to open file KERNEL32.LIB"
A: Most probably,. you have created
the BCC config files
bcc32.cfg and ilink32.cfg in the C:\Borland\Bcc55\bin
directory by your self, didn't you? If so, rename them to e.g.
bcc32_cfg.old and ilink32_cfg.old or delete both; then install
FlagShip anew which creates both *.cfg files if they are not available.
Q: How
can I execute FlagShip application located on Linux/Unix server from
MS-Windows?
A: You
can run it in both textual and GUI mode. To run it in textual mode, compile
on Linux with -io=t switch and invoke the executable via any terminal
emulator (e.g. PuTTY or Telnet or ssh). An overview
of terminal emulators is e.g. on http://www.fship.com/emulators.html.
Read also fsman section REL for environment settings as well as
additional hints in general
FlagShip FAQs.
To run it in GUI mode, you can access and run the Linux/Unix executable
via X11 server or emulator for MS-Windows which then behaves like usual
Windows program. There are many of them available for MS-Windows, see
e.g.
http://www.rahul.net/kenton/xsites.html.
You can compile with FlagShip -io=g switch or use the auto/hybrid
mode. Both methods work fine also from remote access via Internet or
Intranet. For Web/CGI applications, see the Web*() functions
available in FlagShip as well as the CGI/Web
white paper. Alternatively, you can use native FlagShip for
MS-Windows and access the common data located on Linux server.
Q: How
can I access data located on Linux/Unix server from MS-Windows?
A: You
either can run the application directly on the Unix/Linux server from MS-Windows
(see previous item) which avoids any data transfer thru the network, or
create native MS-Windows exe by the FlagShip port for MS-Windows and then
simply access the data on the network via NFS or Samba.