WD 5.5 applications on 64-bit Windows

How to modify a WinDev 5.5 application for running it on a 64-bit Windows

Overview: WinDev 5.5 compiles applications to either 16-bit or 32-bit. Therefore, any WD 5.5 application will run on 64-bit - if compiled as a 32-bit executable. The rather not working parts of the application are the utilities and the Help system.

- 1- WDMODFIC The main problem is to properly replace the 16-bit wdmodfic.exe of WinDev 5.5 which is a key component of a WinDev 5.5 application. A well-kept secret: PC Soft supplies wdmodfic32.exe with all versions of WinDev since 7.5 ! wdmodfic32.exe is a 32-bit standalone replacement for the 16-bit wdmodfic, which always had to be started from within a WinDev 5.5 application. Beware! wdmodfic32.exe is not identical with wdmodfic.exe of WinDev 7.5 -> WinDev 16, the standard restructuring utility for HyperFile 7. wdmodfic32.exe does not sport the same switches and there’s no help to it! But: the standard wdmodfic.exe cannot be used to restructure HyperFile 5.5 files based on a WinDev 5.5 analysis! wdmodfic32.exe is quite undocumented and no one, including PC Soft’s Tech Support, knows a lot about it. Note, that I chose to put the REP-file (it doesn’t work without it!) with command HSetDirON(..) into subdirectory \DATA of the application. Note, that you’ll need some WD553..-DLLs for wdmodfic32.exe, e.g. they are to be found in the \WinDev15US directory.

Here you can see a code example for restructuring the WD5.5 files of an application:

InstallDirectory = fCurrentDir()
FileList=HListFile(False)
// Info("Files:",FileList+CR+InstallDirectory)

Fehler = 0
h.ErrIgnore = True
J = 1
ErgebnisString = ExtractString(FileList,J,CR)
While ErgebnisString <> EOT
HCreationIfNotFound(ErgebnisString)
IF h.error=50 or h.Error=15 or h.Error=16 or h.Error = 17 or h.Error = 7 THEN
Fehler++
Info("Datei: "+ErgebnisString + "   Fehler: "+h.Error)
END
J++
ErgebnisString = ExtractString(FileList,J,CR)
END
h.ErrIgnore = False

// Nun alle Dateien schließen:
HClose("")

IF Fehler <> 0 THEN
// Da stimmt was nicht, lasse nun WDMODFIC.EXE laufen!
// Info("Fehler:","Fehler="+Fehler)
IF fDir(InstallDirectory+"\MyAppName.Wd5",FRPath) <> "" THEN
Info("WDMODFIC32.exe wird gestartet!")
CmdLine = """WDMODFIC32.EXE"" """+InstallDirectory+"\MyAppName.WD5\MyAppName.WDD"" /WD /F /NOLOC /USA /REP="+InstallDirectory+"\DATA"
// Info("CommandLine="+CmdLine,"CurrentDir:"+fCurrentDir())
IF not DDEStart(CmdLine,DDEActive,True) THEN
Error("WDMODFIC32 konnte nicht gestartet werden!","DDEStatus()="+DDEStatus())
END
HClose("")
EndProgram("Die Dateien wurden restrukturiert!"+CR+...
"Das Programm beendet sich nun!"+CR+...
"Sie müssen das Programm dann neu starten!")
ELSE
HClose("")
EndProgram("Verzeichnis "+InstallDirectory+"\MyAppName.WD5 nicht vorhanden!"+CR+...
"Das Restrukturieren der momentan nicht aktuellen Daten ist nicht möglich!"+CR+...
"Versuchen Sie, das Programm mit der letztgültigen CD nochmals aufzusetzen!")
END
END
Fehler = 0

HCreationIfNotFound("*")
 

2 - Other WD5.5 utilities. To my knowledge, no other tool / utility of WinDev 5.5 - except for wdmodfic32.exe - has been converted to 32-bit. So, just forget about them.

3 - Help. As mentioned here, WinDev 5.5 uses old WinHelp files for its WHelp(..) command. WinDev 7.5 and up are using .CHM-files (= compiled HTML-Help). You have to convert all WHelp(..) calls into a DDEStart(..) command.

 

 
[Home] [English] [WX Links] [Deutsch] [Impressum] [Downloads] [RADTranslate] [Upper] [NullValues] [TableOnStructure] [HFClassicHFSQL] [RAD11] [USBFind] [Color Contrast] [Dec. Separator] [Setup Problems] [Directories] [Help Authoring] [Access CHM] [Make GUID] [HOpen Files] [Reset Table] [Int. Gen. Number] [TAB-Control] [RAD11] [fDataDir.. commands] [Calendar Weeks] [Input & check EAN 8/13] [Test_for_Dups] [Feiertage] [MemStick as Dongle] [Get Date & Time] [German phone book] [MDI Behaviour] [WD 5.5: CHM-Help] [WD16: CHM-Help] [Calendar + Memo 1] [Install WD5.5 on Win7] [WD5.5 app on WD7*64] [HListFile] [ZIP-functions] [7-zip CLI] [HFCS + 7-zip] [HFSQL C/S on Linux]