Tuesday, July 12, 2011

How to Convert a Clipper 5.2e application to Harbour

This article is written in in response to a comment left on Clipper... Clipper.. Clipper by Terry Carrol on 3rd July 2011 who asked

I’d like to know if there is an easy migration from Clipper to something else that I could make my Clipper program work on a 64-bit machine..."

As you are probably aware, Clipper apps being 16-bits cannot run on 64-bits Windows 7. For it to do so, it must be converted to 32-bits by using the Harbour or  xHarbour. I had previously show how to do so in Migrating from CA-Clipper 5.2e to xHarbour (Part I), a 3-part series. So this article focuses on using Harbour 2.1

Step 1 - Convert your Clipper link (*.lnk) file to  Harbour Project File (*.hbp)
Step 2 - Use Hbmk2 to compile the .hbp file

Step 1

1.1 Let us start by looking a Blinker link file of one of my actual Clipper project

BLINKER INCREMENTAL OFF
BLINKER EXECUTABLE COMPRESS
BLINKER EXECUTABLE CLIPPER F99
BLINKER PROCEDURE DEPTH 70
BLINKER OVERLAY OPSIZE 30
STACK 7168

FILE FC_MAIN
OUTPUT FASCALL

BEGINAREA
    FILE WRPT_GLL
    FILE WRPT_ARL
    FILE WRPT_ARD
    FILE WRPT_ARS
    FILE WRPT_APL
    FILE WRPT_APD
    FILE WRPT_APS
    FILE \KSLIB\CLIPLIB\UTILITY

    FILE \CLIPLIB\COMIX\CLIPMORE\52\CM52.OBJ
    ALLOCATE \CLIPLIB\COMIX\CLIPMORE\52\CM52
    FILE \CLIPLIB\COMIX\COMIX\52\CMX52.OBJ
    ALLOCATE \CLIPLIB\COMIX\COMIX\52\CMX52
ENDAREA

LIBRARY CLIPPER
LIBRARY EXTEND
LIBRARY DBFCDX
NOBELL


1.2 Convert the fascall.lnk to fascall.hbp

-ofascall4w7.exe
-w0
-es2
-rebuild

fc_main
WRPT_GLL
WRPT_ARL
WRPT_ARD
WRPT_ARS
WRPT_APL
WRPT_APD
WRPT_APS
UTILITY

Step 2


hbmk2 FASCALL.HBP

Result

You are bound to have a number of unresolved Externals, ie functions not supported by Harbour.
Once you have found alternative functions, FASCALL4W7.EXE, a true 32-bit executable will run on Windows 7 64-bits.

That's it :-)

1 comment:

  1. Who can help me to convert prg files from 5.20 to windows platform .if you can, I can send you prg-files...email me at " kontabilisti@t-home.mk "

    ReplyDelete