FlagShip logo
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.


Compatibility:

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.


General i/o issues:

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.


Linux/Unix related issues:

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  
If the link to libX11.so is missing, create it (as root/su):
   cd  /usr/X11R6/lib
   ln  -s  libX11.so.6.2  libX11.so
If the libX11.a library is missing (required for static linking), you will need to install it from the "X11R4 development" or similarly named package available in your Linux distribution.  Also, in some distributions, the libXft.so link to libXft2.so is missing. If so, create it (as su/root):

   cd  /usr/lib
   ln  -s  libXft.so.2  libXft.so
If you want to link statically (using the -stat compiler switch) and you have not the libX11.a or  libXft.a in the Linux distribution package, you may use the partial static linking. To do so, edit the /usr/local/FlagShip6/etc/FS6config file: disable the first PRESTATIC line (usually at line# 40) by placing # in front of, and un-comment the second PRESTATIC line (usually at line# 44).

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.


MS-Windows related issues:

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.


Back to home page