FlagShip logo
Visual FlagShip 7 and 8: 
Frequently Asked Support Questions


(last revised 29-Nov-2022)

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.

General issues
  • Supported plattformsEval/Demo versionSupportLicensingInstallation on different computers

  ClipperFoxProFoxbasedBMANThird Party LibsConcurrent accessPorting Instruction

General i/o issues
  • Editors • Input/output modes • Coordinates • Overwriting @GETs • @..BOX and graphic chars in GUI mode • dito in Terminal mode • Colors in GUI • Character set • USB printer • Network printer • Creating PDF

Linux/Unix related issues
  • RedHat • Fedora • SuSE • other Linux • 64bit • FreeBSD
  • Graphic chars in Terminal mode • dito problems nach upgrade • Boxes • Umlauts • changing gcc • gcc compiler warnings • X11 linker error • SELinux Permission error • Connection refused • Unknown terminal • Arial, Courier and other ttf fonts
  • Used Toolkits • X11 • Motif • Curses • Qt • KDE • Termcap • Terminfo

MS-Windows related issues
  • Availability for • MSVC6 • MSVC7 • .NET • Borland BCC • Difference between MSVC6 and BCC32 • Licensing
  • BCC32 with MSVC libs • Using .DLL libraries in Flagship • BCC linker errors • Command arguments too long
  • Accessing Linux application from Windows • Accessing data on Linux server

Q: Which platforms are supported by FlagShip?
A: FlagShip ports are available for 32-bit (and 64-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 /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 /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 and hence cannot be distributed.

Q: Can I use the FlagShip package on different computers or by different developers?
A: Our licensing policy is per seat (i.e. per person), not per machine. You may install the FlagShip development package in your office and on your notebook or on workstation 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 by FlagShip 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 and .FRT report files to .PRG source, you may use the frx2prg utility. The .FPT memo files are supported by FlagShip automatically.

Q: Can I use FoxPro .idx files in FlagShip?
A: No, you cannot. FlagShip indices are not compatible to FoxPro (and vice versa), since FlagShip supports database and indices >> 2 GB and has automatic integrity checking, hence has another index structure. You need to re-index them for the first time by FlagShip using INDEX ON..TO.. (tech: for the FlagShip index structure see dbfspecs.txt, for FoxPro's index structure see this Microsoft docu). Further details are in the FlagShip on-line manual (icon on your desktop) section LNG.9 and APP.

Q: Can I use VersaSoft dBMAN databases and sources in FlagShip ?
A: Yes. However, dBMAN uses two different kinds of databases: either dBaseIII compatible, or proprietary. If you get run-time error 326 from FlagShip saying "the file has 0xED as version code", it is in proprietary (CaneFire) format. In such a case, convert/export the database to dBase/FlagShip compatible: at dBMAN command prompt (CMD:), enter  SET DB3 ON ; USE MYDATA ; COPY ALL TO C:\MYEXPORT\MYDATA  which creates FlagShip compatible MYDATA.DBF in the specified folder (you of course should use your folder and file names. In dBMAN, you may use only 8.3 file names, the destination folder must exist, and it must differ from current folder).

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. Native 16bit libs and objects (e.g. .LIB and .OBJ 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, there is also Java Interface available), see also next question. To access .DLL libraries, see below

Q: Parts of my Clipper application is not available in .PRG source, but in .OBJ and .LIB files only. What can I to do?
A: Native libraries (.LIB) and object files (.OBJ) are usable explicitly with the system compiled for (e.g. Clipper'87, Clipper 5.0, Clipper 5.2, Clipper 5.3, etc.), they are generally not compatible with other compilers (also Clipper libs are not usable with different Clipper version). Not even that, Clipper's libs and objects are 16bit based, FlagShip creates and uses 32bit (or 64bit) objects and libs, see also previous question.
Solution: in the standard FlagShip library, all Clipper functions and Debugger are available, so avoid linking with CLIPPER.LIB and CLD.LIB. In FlagShip's FS2 Toolbox, functions comparable to NT3.LIB or CT3.LIB or CT.LIB are available. C-based 32bit libraries (for the same C compiler used by FlagShip) are compatible to FlagShip too. For .cdx , .ntx or .mdx drivers, see RDDs for FlagShip. For other 3rd party libraries and objects, you either will need the source (.prg or .c, contact the manufacturer), or re-engineer the functionality. Objects and libs created by Clipper may be re-engineered (decompiled) by Valkyrie, then compile the created .prg code by FlagShip -- but consider the copyright and license terms of the original lib/obj manufacturer.

Q: Can I execute FlagShip application concurently to Clipper / FoxPro / dBase?
A: You can concurrently access FlagShip and DOS database applications in read-only mode. Since FlagShip supports databases and files greater than 2 GB, it therefore uses different locking mechanism (even Clipper/Fox/dBase lockings are not compatible to each other). For this reason, the concurrent modification of databases by FlagShip and Clipper (or FoxPro or other DOS database systems) will most probably corrupt your database and indices. The only way to handle it concurrently, is to use DOS compatible database driver via add-on library, see RDDs. You however can freely access and modify FlagShip applications concurrently on Windows and Linux or Unix, since FlagShip locking is cross-compatible to other operating systems. And since DOS applications are not supported by Windows8 nor by other Windows/64bit nor by other OS, best to recompile all of them by FlagShip to avoid problems - and to fit them for the future.

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: Suggested programming editor compatible to DOS source ?
A: Nearly any programmer's editor can use ISO8859 (or Windows 1250) character set suitable for FlagShip's GUI mode. For MS-DOS based source, best to use programmer's editor supporting CP850 or CP437 encoding. There are many of them available, for example:
   • JEdit - free for Windows, Linux and other OS, supports code folding and .prg code highlighting, configurable. Set encoding by Utilities → Global options → Encoding → IBM850
   • Notepad++ - free for Windows, supports code folding and code highlighting, configurable. Several encodings are supported.
   • UltraEdit - commercial for Windows and Linux, supports code folding and configurable code highlighting. Set encoding by View → OEM charset
Nearly all other editors for Linux (like Kate, Gedit, Nedit etc.) supports DOS source by selecting font with embedded cp850 or cp437 encoding. To handle embedded strings in DOS format properly, use  SET SOURCE ASCII  in your application.

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 @..Get/Read, 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 I cannot overwrite the @...GET output by @...SAY in GUI mode?
A: Since this is illegal, also in Clipper ;-) The display should/need to be handled by the GET object itself. In textual mode, which has only one screen layer = the screen buffer self, you of course can override this HW buffer and hence "tricking" the object display. In GUI mode, the GET (same as many other objects) uses "widgets" (aka "controls" in Microsoft terminology) which you may see as small sub-windows attached to your main user window and managing the sub-window handling by itself. You therefore cannot overwrite the @..GET output (widget) by @..SAY, but need to handle it via the GET object.
The legal methods (before and during READ) are either to modify the attached variable, or use GET object methods like :Buffer, :Assign(), :Varput() etc., by WHEN or VALID clause or by SET KEY function. After READ or after CLEAR GETS, if you don't need the @..GET display anymore, simply clear the output by @ y1,x1 CLEAR TO y2,x2 (or CLEAR SCREEN or CLS) and use the usual @..SAY thereafter. This of course works in Clipper or textual i/o mode of VFS as well, see also example getvalid*.prg in your installed <FlagShip_dir>/examples directory.
You however may overlay the @..GET (as well as other widgets) by sub-windows, for further information see FlagShip manual FS2.Wopen() and/or FUN.MDIopen() .

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, i.e. Unicode cannot be used for program sources, except for strings. The Unicode input/output (in UTF-8 encoding) is supported in GUI by oApplic:Font:CharSet(FONT_UNICODE) or by the SET  GUICHARSET  FONT_UNICODE command.

Q: Can I use my USB and/or network printer?
A: Yes, simply print via PrintGui() function, which let you select any installed printer driver in a dialog box, same as in any other Windows (or Linux) GUI application. See also examples/printergui.prg

Q: How to create PDF file?
A: The easiest way is to install PDF printer driver (e.g. Bullzip PDF driver, DocuCom PDF driver, PDFCreator, PDF24 Creator, and many more) and then print via PrintGui() selecting your PDF driver, see also above. If you are using textual i/o mode or the simple SET PRINTER command, you may convert the textual printer output to PDF via any text-to-pdf convertor (e.g. free-pdf-perfect, some-pdf-creator, and many more) which you may invoke by the RUN command from your FlagShip application.

Linux/Unix related issues:

Q: Is FlagShip compatible to RedHat and FedoraCore?
A: Yes for all versions of RH7, RH8 and RH9, RedHat Enterprise or Fedora Core (all versions). 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, 10 and 11?
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 or 11.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: Where to get Microsoft TrueType ttf fonts like Arial, Courier New, Veranda, Times Roman etc for Linux?
A: You may install the msttcorefonts package from your distribution or download it from sourceforge or refer to downloads for Ubuntu, Debian or SuSE or Fedora. After installing (usually available in /usr/share/fonts/truetype/msttcorefonts directory, refered here as <ttf_dir>), you may need to invoke
cd <ttf_dir> ; sudo mkfontdir ; sudo mkfontscale ; sudo xset fp+ <ttf_dir> ; sudo xset fp rehash
You may list/check these fonts by "xlsfonts | less" or explicitly by "xlsfonts | grep -i arial" etc. This setting remains active until next logoff or reboot. To add these fonts permanently to X11, add the <ttf_dir> to section Files in  /etc/X11/xorg.conf  file to read e.g. FontPath "/usr/share/fonts/truetype/msttcorefonts", thereafter invoke "sudo xset fp rehash". You may then select the font by e.g. SET FONT "Arial",12  or  SET FONT "Courier new",10  command in your FlagShip GUI application.

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 use the newfswin script from KDE/Gnome console (or via newfscons on textual console) to start your application, it set proper environment automatically. Otherwise invoke YaST -> System -> Language -> Details and disable the UTF-8 checkbox. Thereafter, a new login (or reboot) is suggested. You also may 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 4.6 on 64bit system, I get compiler error "** Warning: C compiler not invoked" but without any displayed syntax error.
A: This may be caused by insufficient stack size for large source files or many continuation statements. Increase the stack by  uname -s 32768. If you cannot, i.e. you get a message "ulimit: stack size: cannot modify limit..." you need to set (as su/root/sudo)  uname -Hs 32768, then re-open the user terminal and set uname -s 32768 anew.

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 +
   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:
   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/FlagShip7/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/FlagShip7/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/FlagShip7/terminfo directory. If so, set the environment variable export FSTERMINFO=/usr/local/FlagShip7/terminfo - or don't use the compatibility setup mode. See also fsman ReleaseNotes section 3.e for details.

Q: After upgrading my Linux (or at new installation), I get error message at executing the application. What to do?
A: Some Linux distributions have enabled new kernel security extensions from the SELinux project. If you get message "error while loading shared libraries ... cannot restore segment prot after reloc: Permission denied" at the time of executing your application, you will need to enable security context for the shared FlagShip library by issuing the command (as root or su):
  chcon -t texrel_shlib_t /usr/local/FlagShip7/lib/libFlagShip7*.so
or disabling SELinux altogether in your /etc/sysconfig/selinux file by setting the line

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/FlagShip7/etc/FS7config 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 FlagShip7*.{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 libFlagShip7*.so or the static libFlagShip7*.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?
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?
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 available for MS-Windows NT4, 2000, 2003, 2008, XP, Vista and Windows-7. 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 accompanying library (therefore different ports), so you should not detect any in your application. The former limitation of max 50 open files in BCC32 does not bother anymore, both FlagShip MS-Windows ports (for MS-VC6++ and BCC32) supports now at least 2000 simultaneously open files per user and application. The only known programming difference is: the BCC32 linker removes unused externals, so you will need to use EXTERN fun1,fun2,... statement if functions / procedures fun1( ) and fun2( ) etc. are called only by macro (and not elsewhere explicitly by name); whereby the EXTERN is generally suggested in such a case, see fsman section CMD.EXTERNAL.

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++) or vice versa?
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: Q: Is it possible to use a .DLL libraries in Flagship?
A: Yes, if the library is build for 32bit system. To link .DLL, the corresponding .LIB needs to be linked (it contains header/externals of the .DLL for the used C/linker system). Such .LIB is usually included with the .DLL, but you may create the .LIB from .DLL, e.g. for BCC32 and available mylib.dll use
    C> implib mylib_bcc.lib mylib.dll
and then simply add mylib_bcc.lib to your link list. If the .lib is not available or cannot be created (like for .dll functions written in Delphi), you may access the .DLL directly, see the example here.

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/linking many files, MS-Windows reports "Command line too long" or "Command arguments too long"
A: This is caused by the command-line size limit of CMD.EXE; it allows you to compile and link approx. 300 to 500 files at once. To overcome this limitation, create your own library (see FlagShip manual section FSC.1.7) - it can contain nearly unlimited number of object files. You may preferably use the "fsmake" tool (see FlagShip manual section FSC.6.8) which creates the library (via Makefile) nearly automatically, and according to your needs.

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 /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