Release Notes
Online docs


Introduction to Xeffort Library

Xeffort library (previously known as XFT) is used for easy building Win32 GUI applications with Compaq and Intel Visual Fortran compilers. It seamlessly integrates with Microsoft Visual Studio (.NET) IDE providing:

Application wizard, for quick creating of skeleton MDI, SDI or dialog-based applications

Handler wizard, for creation of prototypes of most-frequently used routines

Online help, which can be run from Visual Studio "Tools" menu

Xeffort is distributed as free, open source resource.

Xeffort is both a framework (meaning that you can build GUI applications using solely Xeffort APIs) and a library (meaning that you can call selected Xeffort routines from any Win32 application without using full set.)

Currently, Xeffort is available only for Compaq/(Intel) Visual Fortran compiler since it partially depends on some extensions, namely, integer (Cray) pointers and DEC$ metacommands. Your possible effort to port it to other compilers is welcome.

Please refer to the release notes for the latest information about Xeffort library updates.

Versions and Compatibility

Xeffort can be used in two flavors: "Lite" and "Full". "Lite" version consists of a limited set of modules which present useful functions in any kind of application without additional overhead. Currently, the following modules are provided in "Lite" flavor: XFTGDI, XFTFile, XFTMenu, XFTReg and XFTStrings. These modules can be included into your projects and compiled separately of the rest of Xeffort library.

"Full" version of the package presents a complete framework built on top of Win32 API, and it provides functions able to build an entire GUI application of moderate complexity. However, the open architecture of Xeffort enables that both - "Lite" and "Full" flavors can be used on top of existing code, regardless whether it's a console, QuickWin, dll or Win32 application - in just few steps you're able to bind Xeffort windows with your existing application windows and add new functionality.

Xeffort Full version carries along an independent set of interfaces for Win32 functions and structures so that it is not dependent on DFWIN upgrades throughout CVF development, thus it should work on any CVF version.

Xeffort Full version is most easily used as a static library (Xeffort.lib) along with a set of modules (*.mod). Xeffort Lite modules can be used as separate .f90 files inserted into your projects.

Name Change

Since mid-August 2005, Xeffort has undergone a name change from "XFT". There are several reasons for that, mostly of "commercial" nature:

There already exists another (and more popular) XFT library (X FreeType interface library)

Domain was already taken

XFT was acronym for rather stupid name of "eXtended Fortran Types". That was actually retrofitted to the acronym, which... never mind...

It sounds better. and is similar to the old name

It can be retrofitted to acronym of "eXtremely Easy Fantastic gui's in FORTran"

Its developers have put an Xtreme effort to assemble it.

Xeffort is backward-compatible with XFT. That means that all old codes using XFT can be built without change. Users are encouraged to use name "Xeffort" for new applications.

Important Notes

Main development of Xeffort is done on CVF6.6C. You are encouraged to upgrade your compiler to the highest version available. CVF updates are available at HP Visual Fortran Updates.

Intel Visual Fortran 8/9 Users: Minimal required version of IVF is 8.1.021. When building, make sure your application is built with default calling convention and default string argument passing (Project Properties/Fortran/External Procedures category). For compatibility with CVF 6.0/6.1, Xeffort routines do not have defined !DEC$ATTRIBUTES DEFAULT (as they should).

Compaq Visual Fortran 6.0/6.1 Users: CVF 6.0 and 6.1 is not supported anymore. Try installing XFT 1.2.14 and rebuild the sources (open Program Files\Xeffort\Xeffort.dsp and build Release configuration.)


Xeffort is available under the following license:

You are free to use the code for both commercial and non-commercial use. The code is provided as-is without warranties. You are free to distribute and modify this source code provided that the list of  original author(s) remains untouched and your revisions are indicated as such. Contributions are welcome.


Jugoslav Dujic

University of Novi Sad, Yugoslavia

Institute for Power, Electronics and Telecommunications

Fruskogorska 11, Novi Sad