Wiki Home

VFP 9 on NT 4 Patch


Namespace: Wiki
A free patch for VFP 9.0 is available to run it on NT 4.0.

General Summary

The patch was created by the German FoxPro User Group and can be found at the dFPUG document portal in the directory http://portal.dfpug.de/dFPUG/Dokumente/Freeware/ so VFP-developers do not need to wait any more to buy an update of VFP 9.0 if they, or their customers, still use NT4.

Some Technical details what the patch program does:
  1. vfp90nt4.dll is copied to Windows system directory
  2. vfp9r.dll and vfp9t.dll in VFP-Runtime folder at "Shared Files" are patched.
  3. vfp9.exe in VFP-program directory is patched.
  4. vfp9.exe, vfp9r.dll, vfp9t.dll in same directory are patched.
  5. backup copies of all files are made (extension .001, .002 and so on)

A patched VFP9 file will run on any operating system as long as it can find vfp90nt4.dll in the windows system directory or the current directory. The patch program can be forwarded to users if needed but you are not allowed to offer it as an own download - please link to the above mentionend directory instead.

Patching executables might cause problems with virus filters and/or licence agreements. No garantues whatsoever for patch program and results.

Details

Visual FoxPro 9.0 / NT4 Patch
Version Beta 1 Only for testing !
Copyright (c) 2005 dFPUG c/o ISYS GmbH

PLEASE NOTE: Usage at your own risk! The dFPUG does not grant any warranty whatsoever for the patch program and for its results!

Important: Windows NT 4.0 is not a supported platform for Visual FoxPro 9.0 (same as 8.0) by Microsoft or the Visual FoxPro team.

The Problem:

The runtime libraries of Visual FoxPro 9.0 contain a function call which is not supported by Windows NT 4.0, therefore producing an error message and the exit of the application. The patch file described here modifies this call. Thus instead of the original DLL of Windows, a different, separately supplied DLL is being used, and the error does not occurr any more.

What does happen now?

The patch program performs the following tasks:

1. vfp90nt4.dll is copied to the Windows system directory
2. vfp9r.dll and vfp9t.dll in the VFP runtime folder at Shared Files are patched.
3. vfp9.exe in the VFP program directory is patched..
4. If one of the files vfp9.exe, vfp9r.dll, or vfp9t.dll exists in the same directory as this program, the file is patched, too.
5. Backup copies of all files are made (extension .001, .002 and so on).

Backup copy:

When a file is being patched, this program creates a copy of the original file in the same directory. The file name extension is changed to .001, .002 and so on.

How does it work?

The vfp90nt4.dll is a wrapper that passes on all necessary function calls to the kernel32.dll. Only the call GetLongPathNameA(), which does not exist in NT4, is being simulated more or less. To the outside, the function is compatible to the original function, but it does not contain any functionality because that would require calling shell functions. Loading the shell or another equivalent DLL can cause problems if the vfp9r.dll or vfp9t.dll called Get Long Path NameOffsite link to http://www.news2news.com/vfp/?function=416
() in its DllMain() function. But from a technical point of view there is no difference whether a short (8.3) path or a long path is given. Only to human beings long paths are easier to read.

For those operating systems where the kernel32.dll does export the function, a call is simply being passed through just like with all other function calls.

Further technical notes:

The patch program runs in Windows NT 4.0 only. With an Internet Explorer version earlier than 5.0, it produces a dialog box for safety purposes (OK/Cancel dialog). The limitation to Windows NT 4.0 only concerns the execution of the patch program itself.

Once patched, a vfp9.exe, vfp9r.dll, or vfp9t.dll will run in all operating systems (tested in WinNT/2000/XP) provided that it can find the vfp90nt4.dll in the Windows system directory or in the current directory. Therefore the patch program copies the vfp90nt4.dll into the Windows system directory. But you can just as well copy it to the vfp9.exe, vfp9r.dll, or vfp9t.dll by hand.

You can extract the file vfp90nt4.dll with this command: vfp9nt4patch.exe /Q /C /T:C:\unzip. This and further command line parameters are to be found by vfp9nt4patch.exe /? or in the MSKB at http://support.microsoft.com/default.aspx?scid=kb;EN-US;197147 .

The test with NT4 SP6a and IE5 runs smooth at the first glance. An MT-DLL project can be set up as well, and you can instantiate the COM server without any problems, and several times, too.

We also set a new value of the header checksum because there are some installers which
would otherwise want to install the file another time due to a false checksum.

Further miscellaneous notes:

Due to the fact that the program modifies existent applications, messages from virus scanners and other protection software might occur, which could possibly make users unsure.

The modification of existent programs might possibly be prohibited in the license contract or in the copyright. In any case one has to suppose that the manufacturer does not support a patched version.

It is being assumed that a Service Pack 1 to Visual FoxPro 9.0 will be published in the foreseeable future and that the bug may be removed there. This patch is possibly just a temporarily necessary solution, but it helps some developers on the spot.

The patch application may be used free of charge, and it may also be forwarded to users together with the description. Nevertheless we ask everybody not to provide the files online in the Internet as an own dowload, but to refer to our freeware directory with a link.

You find updates and new releases to this patch application exclusively in the directory http://portal.dfpug.de/dFPUG/Dokumente/Freeware/ in the document portal of the dFPUG.

If you have further questions, please turn to the section/group about the subject Visual FoxPro 9.0 in the dFPUG forum at http://forum.dfpug.de or in the newsgroup of similar content at news://news.dfpug.de .

Special thanks!

The German-speaking FoxPro User Group DFPUG owes particular thanks to its regional coordinator Mr. Erich Todt who has provided the patch and the installation routine in a very short time!

The German-speaking Foxpro User Group, DFPUG:

Homepage http://www.dfpug.de
Document portal http://portal.dfpug.de
Discussion forum http://forum.dfpug.de
eNewsletter http://newsletter.dfpug.de
Online Shop http://shop.dfpug.de
Wiki / LiveFAQ http://faq.dfpug.de
Newsfeeds http://afp.dfpug.de
Framework http://www.visualextend.com
Conference http://devcon.dfpug.de
Roadshow http://roadshow.dfpug.de
Further books http://www.linuxtransfer.de


DFPUG c/o ISYS GmbH
Rainer Becker
Frankfurter Str. 21 B
61476 Kronberg
Germany

See Also: dFPUG Intl. Shop for donations
Category VFP 9
( Topic last updated: 2005.05.17 01:08:19 PM )