Showing posts with label Harbour Project. Show all posts
Showing posts with label Harbour Project. Show all posts

Monday, July 18, 2011

[harbour-users] 3.0.0 Windows unified distro available

Viktor Szakáts via googlegroups.com to harbour-devel, harbour-users
show details 5:17 AM (1 hour ago)

Hi All,

Windows unified distro 3.0.0 is available
(in .exe installer and .7z archive formats):
 http://sourceforge.net/projects/harbour-project/files/binaries-windows/3.0.0/

Make sure to 'like' Harbour Project on the main page:
  http://sourceforge.net/projects/harbour-project/

Viktor

CCH : Earlier post by Viktor

Hi All,

After more than 1.5 years of strong development and 3600 commits,
stable Harbour 3.0.0 version has been tagged and source packages
released. Binaries will follow, I will upload universal Windows package
as soon as it will be ready. For other platforms, I'm asking volunteers
to make the packages and upload them to sf.net file area.

Upgrade is recommended for all users.

Get 3.0.0 sources from here:
  svn export https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/tags/harbour-3.0.0
  (note to developers: never commit into this branch)

Prepackaged sources here for both *nixes (.gz, .bz2, .xz)
and non-*nixes (.zip):
  http://sourceforge.net/projects/harbour-project/files/source/3.0.0/

Binary package builders may use above links to get the sources.

[ SVN revision of 3.0.0 is r16952, it will be shown as r16951 in
version information. ]

I've bumped trunk to 3.1.0dev, this will be the new interim
version number for mainline development.

New features and even compatibility breaker commits are
now allowed in trunk. I've already committed some such
changes, stepping up legacy level and dropping old stuff
marked for removal in previous versions.

Users of nightly builds and SVN trunk source please be
aware about above and use it more carefully than in last
6 months. It may break your build or apps. Stick with
stable release if in doubt.

To retrofit fixes to 3.0.0 for possible 3.0.1 bugfix release,
commit to this source tree:
  svn co https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/branches/harbour-3.0

I hope this release will serve the community well and I'd
like to thank everyone contributing to create this new release.

Viktor

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 :-)

Known Bugs in Harbour 3.0

"Viktor Szakáts" <harbour.01@syenar.hu> Jul 11 02:48PM +0200 ^

- achoice bugs
- menusys minor Clipper incompatibilities
- hb_ini*() functions buggy since adding them in 2007
- target specific C code generated for some numeric
operations in -gc3 mode (preventing cross-compilation)
- mingw64-tdm produces extra hbtest errors
- symbian build broken
- HBQT class creation not MT safe
- HBQT code using not MT safe strtok()
- hbssl not MT compatible
- gtwvw bugs (scrolling bug still there)

plus these:
http://sourceforge.net/tracker/?limit=25&func=&group_id=681&atid=100681&status=1&submit=Filter

Viktor

Saturday, April 30, 2011

How to 'SVN' a copy of Harbour ?

CCH : From the Harbour-Users Group

Q.   I'd like to get a complete copy of Harbour on my machine for
testing (I already have xHarbour).

  I can easily use get an update of xHarbour from SVN

  What is the SVN command for Harbour please ?

Thank you.

-Mel

A.  Try:

svn co https://harbour-project.svn.sourceforge.net/svnroot/harbour-project/trunk/harbour c:\svn

  Where c:\svn is the folder where you want to download the source tree.

Qatan

Hw to SVN and BUILD Harbour using MingW from scratch on Windows box.

Hello Mel,

  Seems that you successfully built Harbour with MingW!
  I had prepared a simple way for new users to learn how to SVN and BUILD Harbour using MingW from scratch on Windows box.
  Please look this: www.tribaltradingcompany.com.br/qharbour
  It is just a simple way of doing the same you are doing - for those who would like to do it but don't know where to start.
  Regards,

Qatan

Thursday, March 10, 2011

Harbour (2.1) and QT Classes (4.7) - Tutorial by Giovanni Di Maria

As per the harbour developers list, the latest Harbour (2.1) and QT Classes (4.7) - Tutorial by Giovanni Di Maria is now available for download at
http://www.gruppoeratostene.com/harbour/ht.htm

This tutorial is a brief, continuously updated, of the use of the classes QT with Harbour language.
It is specifically written for beginners that initially encountered some difficulties in using these classes, however, extremely powerful and efficient.

The approach of the tutorial is different from other guides that are online. It simply focuses a single class or single object, so you do not get lost in the maze of the vast files of examples provided with the product.

This will easily learn to manage and plan their individual class, as needed, and, finally, to put "together" the whole.

Giovanni Di Maria
email: calimero22@yahoo.it

Monday, March 7, 2011

Habour 2.1 now supports Alert() mapped to MessageBox()

Great news ! In scanning the ChangeLog dated 22nd Feb 2011 that came with HB2.1, i found this gem


2011-01-10 20:02 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtgui/gtgui.c


+ added basic support for redirecting ALERT() to MessageBox() in
MS-Windows GTGUI builds. Please remember that MessageBox() supports
only few predefined buttons so it's not possible to show all user
options. Anyhow it should be enough to present error messages
generated by default error handler.


I am sure you know what this means to Clipper programmers migrating their codes to Harbour :-)

Just tested Alert() as in :-

nchoice := Alert( 'Print or Display &mreptname', { 'PRINT', 'DISPLAY', 'CANCEL' } )

Observations
============
1. Can handle up to 3 buttons. If a 4th button is added to the array of choices, only 1 button will show up

2. No Window title
3. No Icon

Adding MsgInfo() Functionality to a Harbour app

CCH : Assuming that you want a simple Alert() replacement and do not want to add harbour-compatible libs such as gtWVG, HMG or Minigui, you may want to check out this piece of code by Vailton Renato posted recently on the harbour-users Google group.

/*
* An MsgInfo() implementation using hbwin library.
* 06/03/2011 - 21:56:45
*
* COMPILE: hbmk2 msginfo1.prg -run -lhbwin
*/
#include "hbwin.ch"

FUNCTION MAIN()
? MsgInfo( "This is a single test" )
RETURN nil

FUNCTION MSGINFO( cText, cTitle )
RETURN WAPI_MESSAGEBOX( 0, cText, cTitle, WIN_MB_ICONQUESTION )

Regards,
Vailton Renato

Saturday, February 19, 2011

Simple Usage of gtWVT

What is gtWVT ?

gtWVT is the  GT driver for MS-Windows (Win 95 and higher) and was contributed to Xharbour on 22nd December 2003 by Peter Rees

It creates its own GUI window instead of using MS-console window. It allows to changes to font, window size, etc.

gtWVT is a pure console implementation of traditional Clipper terminaltaking Windows API as its base console IO protocols. Its OI are  rendered in a Windows window and hence all of MSDN is available  for use with GTWVT.


Simple Usage in Harbour/xHarbour

Incredibly as it may seems, just adding -gtwvt to yourproject.hbp and then hbmk2 yourproject.hbp will allow your newly recompiled CA-Clipper Codes (as Harbour Codes) to run  as a true 32-bits application to run in its own GUI window rather than the awkward Command Prompt Window :-)

gtWVT also supports  additional functionality with hb_gtInfo() interface. You may want to check out harbour\include\hbgtinfo.ch :-)

Friday, February 18, 2011

What is installed by the Nightly Builds of Harbour 2.1 ?

Supported  Platforms
x86, x64, WinCE/ARM, MS-DOS, OS/2, Linux target platforms.

Installation Size
Installed size: 214MB (54MB - 339MB)

What is actually Installed ?
The default installation will install MinGW compiler + x86 static and
shared libs, MSVC and BCC x86 libs and examples.

Options: x86 shared tools, x64 shared tools, MinGW x64 and WinCE-ARM libs, MSVC x64 libs, Open Watcom x86 libs,shared x64/WinCE-ARM libs, MS-DOS (watcom) libs, OS/2 (watcom)libs, Linux (watcom) libs.

How to Use ?
1) install/unpack to any directory (C:\hb21)
2) go to bin dir (optional if you specify path for hbmk2)
3) For x86 executable, type: 'hbmk2 ../tests/hello.prg'
4) For x64 executable, type: 'hbmk2 ../tests/hello.prg -compiler=mingw64'
   [needs mingw64 to be installed in 'comp/mingw64' dir beforehand]
5) For WinCE/ARM executable, type: 'hbmk2 ../tests/hello.prg -platform=wce'
   [needs cegcc to be installed in 'comp/mingwarm' dir beforehand]
6) For MS-DOS executable, type: 'hbmk2 ../tests/hello.prg -platform=dos'
   [needs OpenWatcom to be installed in 'comp/watcom' dir beforehand]
7) For Linux executable, type: 'hbmk2 ../tests/hello.prg -platform=linux'
   [needs OpenWatcom to be installed in 'comp/watcom' dir beforehand]

CA-Compiler - Arguments Listing & Compiler Options

CA-Clipper Compiler--CLIPPER.EXE
 Compiles one or more program files (.prg) containing procedures and user-
 defined functions to form an object file (.OBJ).
------------------------------------------------------------------------------

 CLIPPER [<sourceFile> | @<scriptFile> [<option list>]]
   
 Arguments

<scriptFile> is the name of an ASCII text file containing a list of
     source files to compile into a single object file.  The default
     extension for this file is (.clp).

     <option list> is a list of one or more options to control the course
     of the compilation, all of which are described below.  To get a list of
     options, specify the compiler command line with no arguments.

 Compiler Options

     All options are shown in uppercase preceded by a slash (/).  Note,
     however, that options are not case-sensitive and that you can replace
     the slash with a dash (-) if you prefer.

     Some compiler options have arguments.  If an option has arguments,
     specify them after the option, with no space between the option and
     its first argument.

     /A

     Declares any variable included in a PRIVATE, PUBLIC, or PARAMETERS
     statement as MEMVAR.

     /B

     Includes debugging information in the object file.

     /D[=]

     Defines an identifier to the preprocessor with  assigned to the
      if specified.

     /ES[]

     Specifies the severity level of warnings.

     If  is 0 or omitted, the compiler does not set the DOS
     ERRORLEVEL upon exit if warnings are encountered.  This is the default
     behavior of the compiler.

     If  is 1, the compiler sets the DOS ERRORLEVEL upon exit
     if warnings are encountered but still generates an .OBJ file.

     If  is 2, the compiler sets the DOS ERRORLEVEL upon exit
     if warnings are encountered and does not generate an .OBJ file.  This
     effectively promotes warnings to error status.
     /I

     Adds the specified directory to the front of the INCLUDE path list.
     Multiple /I options can be specified in the same compiler session to
     specify several header file search directories.

     /L

     Excludes the program source code line numbers from the object file.

     /M

     Compiles only the current program file (.prg) suppressing automatic
     search for program files (.prg) referenced in a program file with the
     DO, SET FORMAT, and SET PROCEDURE commands.

     /N

     Suppresses the automatic definition of a procedure with the same name as
     the program file (.prg).

     /O

     Defines the name and/or location of the output object file.

     /P

     Preprocesses the program file (.prg) and copying the result to an output
     file with a (.ppo) extension.

     /Q

     Prevents line numbers from displaying while compiling.

     /R[]

     Embeds a library search request in the object file.  If /R is specified
     without  name, the default requests for CLIPPER.LIB,
     EXTEND.LIB, DBFNTX.LIB, and TERMINAL.LIB are suppressed.  Multiple /R
     options can be specified in the same compiler session to embed more
     than one library request.

     /S

     Checks the syntax of the current (.prg) file and no object file is
     generated.

     /T

     Specifies a different directory for temporary files generated during
     compilation.

     /U[]

     Identifies an alternate standard header file to preprocess in place of
     the supplied STD.CH which is used automatically.

     /V

     Forces the compiler to assume all references to undeclared or unaliased
     variable names are public or private variables.

     /W

     Generates warning messages for undeclared or unaliased (ambiguous)
     variable references.

     /Z

     Suppresses shortcutting optimizations on the logical operators .AND. and
     .OR.  This option is provided as an aid to isolating code that depends
     on the behavior of older versions of CA-Clipper.
 

More at http://www.itlnet.net/programming/program/Reference/c53g04c/ng35d.html

Thursday, February 17, 2011

How many changes since Harbour 2.0 ?

Recently, I downloaded hb2.1 and found that it does resolve some of the issues I faced in recompiling XHarbour apps circa 2006 to Harbour 2.0. For example, pressing ESC when in a memo field  DBEDIT() did not work in hb2.0 even when I made no changes.

Do you know how many changes that has been made since hb2.0 ? Would you believe that more than 3,000 changes have been made. Check out this excerpt of the response from Viktor on my request for hm to provide me a list of changes since hb2.0

Viktor - 16/1/2011
=============

Phew... for this I'd need to spend many long days to gather all changes (from ChangeLog) and translate them to some digestible terms. I had actually asked dev list members to do it, but there was barely any help.

In fact this job was not even finished for 1.0 -> 2.0 changes, there were so many of them. Now there are 3000 more changes since 2.0, so, it should be made community effort in some ways. I agree it's very good idea and very important to get such list.

CCH: Perhaps, I should start to wade through the ChangeLog and start posting on this blog :-)


Wednesday, February 16, 2011

Free xEdit IDE from xailer.com


From the News of Xailer.com  billed as the Ultimate Development Environment for Xbase

01-19-2011. New xEdit 2.2 version
New upgrade of our free development environment for [x]Harbour xEdit. Now with subprojects support. You may find further information on the downloads section.


Just downloaded the 2011 version of the free xEdit2 IDE (xeditsetup.exe) from http://www.xailer.com.

Installation was a breeze on my Windows 7 Home Premium Notebook but the  Desktop Shortcut did not appear :-)

1. Click New Project and presented with Project Properties

2. Tree-like project Properties covering
a)Main (Project Type, Description, Output File, Environment, Main Module)
- Empty pulldown for environment
- populated after Add file to Project

b) Look (inlclude XP Themes, Select Icon)
c)Version
d) Options
e) Libraries
f) Directories (Root, Source, Include, Resource, Object)

3) Click Projects/Add File to Project

4. Click Compile, no issue here

5. Click Run
- No error messages, no compile errors but no EXE created

6. Updated Tools\Programming Environment with Harbor 2.0/MinGW and updated Project Properties\Environment

7. Click Run
- No error messages, no compile errors but no EXE created

Hmm... I think I am missing something here :-)

Have emailed Xailer Forum/Google Group owners and awaiting reply.

As at 21st Feb 2011, still unable to create EXE using xEdit2, please refer to this thread :-(

More to come...

Tuesday, February 15, 2011

Migrating Xharbour Codes to Harbour 2.1

Recently in recompiling a XHarbour app to Harbour 2.1, I ran into a couple of Undefined Functions such as

1) C:/Users/CCH/AppData/Local/
Temp/hbmk_lv5w33.dir/HMS_MAIN.o:HMS_MAIN.c:(.data+0x1
5b8): undefined reference to `HB_FUN_SETMOUSE'

2) C:/Users/CCH/AppData/Local/Temp/hbmk_lv5w33.dir/HMS_MAIN.o:HMS_MAIN.c:(.data+0x1
6b8): undefined reference to `HB_FUN_HB_FREADLINE'
I tried unsuccessfully to find replacement functions and Viktor came to my rescue by suggesting that Ilink xhb and hbxpp libs to your app:  hbmk2 ... xhb.hbc hbxpp.hbc

Practically, it means that I add xhb.hbc and hbxpp.hbc to my hbp file :-)

Saturday, February 12, 2011

What is hbmk2 ?

hbmk2.exe is the Harbour 2.0 excellent make utility that is located in the BIN folder under the C:\hb20 root directory. This is assuming that you accept the default location when installing the hb20 distro available at http://sourceforge.net/projects/harbour-project/files/binaries-windows/2.0.0/

After installing do not forget to set path to c:\hb20; c:\hb20\bin.

To use it is fairly simple, go to your project folder and type

c:\hb20\projects\yourproject >hbmk2 yourproject.hbp and bingo your Harbour 32-bit EXE is created

What are the options that hbmk2 provide ?

Just type at any command prompt

C:\hb20\projects\myprojects> hbmk2  
and this is what you get to see :-

Harbour Make (hbmk2) 2.0.0 (Rev. 13372)
Copyright (c) 1999-2010, Viktor Szakats
http://www.harbour-project.org/

Syntax:

  hbmk2 [options] [] .clp|.d]> Options:   -o        output file name   -l        link with library. should be without                      path, extension and 'lib' prefix (unless part of libname).   -L        additional path to search for libraries   -i
|-incpath=
additional path to search for headers
  -static|-shared    link with static/shared libs
  -mt|-st            link with multi/single-thread VM
  -gt          link with GT GT driver, can be repeated to link with
                     more GTs. First one will be the default at runtime
  -hblib             create static library
  -hbdyn             create dynamic library
  -help|--help       long help
 

For more details, see http://groups.google.com/group/harbour-users/web/how-using-hbmk2

Wednesday, November 3, 2010

Is it possible to send message to mobile through our app?

Q. By Sudip. Is it possible to send message to mobile through our app?

A. By Mahmoud Fayed

Yes you can and i have done that 6 months ago

Buy GSM-Modem
This device comes with DLL file contains functions to send and recive SMS messages
Just you need to study this simple API to use the device and start sending/reciveing the SMS messages from your application

This is my code in HarbourMiniGUI to send SMS messages based on GMS-Modem API (DLL Functions)


#include "MiniGUI.ch"

function main()
if !iswindowdefined( win1 )
DEFINE WINDOW win1 ;
AT 10 ,10 ;
WIDTH 881 ;
HEIGHT 488 ;
ICON "PWCTICON" ;
TITLE "smstest" ;
MAIN ;
BACKCOLOR {236,233,216}
@ 369 ,126 BUTTONEX btn1;
CAPTION "Send Message";
ON CLICK SMSSend()  ;
WIDTH 150 HEIGHT 40 ;
FONT "Arial" SIZE 14 ;
TOOLTIP ""
@ 75 ,20 LABEL lbl1 ;
VALUE "port" ;
WIDTH 100 ;
HEIGHT 20 ;
FONT "Arial" SIZE 9  ;
BACKCOLOR {236,233,216} ;
FONTCOLOR {0,0,0}
@ 121 ,19 LABEL lbl2 ;
VALUE "phone Number" ;
WIDTH 100 ;
HEIGHT 20 ;
FONT "Arial" SIZE 9  ;
BACKCOLOR {236,233,216} ;
FONTCOLOR {0,0,0}
@ 165 ,19 LABEL lbl3 ;
VALUE "Message" ;
WIDTH 100 ;
HEIGHT 20 ;
FONT "Arial" SIZE 9  ;
BACKCOLOR {236,233,216} ;
FONTCOLOR {0,0,0}
@ 118 ,128 TEXTBOX text1;
HEIGHT 30 ;
WIDTH 200 ;
BACKCOLOR {255,255,255} ;
FONTCOLOR {0,0,0} ;
INPUTMASK ""
@ 158 ,127 EDITBOX edit1;
WIDTH 330 ;
HEIGHT 200;
VALUE "SMS Message test using PWCT" ;
FONT "Arial" SIZE 9 ;
BACKCOLOR {255,255,255} ;
FONTCOLOR {0,0,0}
@ 72 ,128 COMBOBOX combo1;
WIDTH 200 ;
HEIGHT 300;
ITEMS {"COM1","COM2","COM3","COM4","
COM5","COM6","COM7","COM8"} ;
VALUE 1 ;
FONT "Arial" SIZE 14 ;
BACKCOLOR {255,255,255} ;
FONTCOLOR {0,0,0}
@ 97 ,471 EDITBOX edit2;
WIDTH 251 ;
HEIGHT 255;
FONT "Arial" SIZE 9 ;
BACKCOLOR {255,255,255} ;
FONTCOLOR {0,0,0}
@ 71 ,468 LABEL lbl4 ;
VALUE "Log" ;
WIDTH 100 ;
HEIGHT 20 ;
FONT "Arial" SIZE 9  ;
BACKCOLOR {236,233,216} ;
FONTCOLOR {0,0,0}
@ 371 ,407 BUTTONEX btn2;
CAPTION "Read";
ON CLICK myread()  ;
WIDTH 100 HEIGHT 30 ;
FONT "Arial" SIZE 14 ;
TOOLTIP ""
@ 12 ,19 BUTTONEX btn3;
CAPTION "Start";
ON CLICK mystart()  ;
WIDTH 100 HEIGHT 30 ;
FONT "Arial" SIZE 14 ;
TOOLTIP ""
DEFINE TIMER Timer1 INTERVAL 1000 ;
Action myread()
@ 410 ,292 BUTTONEX btn4;
CAPTION "Close Service";
ON CLICK myend()  ;
WIDTH 150 HEIGHT 30 ;
FONT "Arial" SIZE 14 ;
TOOLTIP ""
END WINDOW
win1.timer1.Enabled := false
ACTIVATE WINDOW win1
EndIF
return

Proc SMSSend
cNumber := win1.text1.Value
cMessage := win1.edit1.Value
myout = CALLDLL32("SMSSendMessage","SMSDLL.DLL",cMessage,cNumber)
cLog := win1.edit2.Value
cLog := cLog + CHR(13) + CHR(10) + "Message sent"
win1.edit2.Value := cLog
Return Nil

Proc myread
win1.timer1.Enabled := false
cLog := win1.edit2.Value
Public mymsg
mymsg := space ( 320 )
myout = CALLDLL32("SMSGetNextMessage","SMSDLL.DLL",@mymsg)
IF myout != 0
cLog := cLog + CHR(13) + CHR(10) + mymsg
win1.edit2.Value := cLog
ENDIF
win1.timer1.Enabled := true
Return Nil

Proc MYEND
myout = CALLDLL32("SMSStopSerice","SMSDLL.DLL",NIL)
Return Nil
Proc mystart
nPort := win1.combo1.Value
myout = CALLDLL32("SMSStartService","SMSDLL.DLL",nPort,115200,2,8,0,0,"+966505031999")
IF myout = 1
cLog := win1.edit2.Value
cLog := cLog + CHR(13) + CHR(10) + "Connection Done (True)"
win1.edit2.Value := cLog
win1.timer1.Enabled := true
ELSE
Return 0
ENDIF
Return Nil

Download this sample
http://sourceforge.net/projects/doublesvsoop/files/PWCT%20For%20MS-Windows/PWCT%20Samples/English/Fayed_PWCTSamples_SendSMS.zip/download

You will find the DLL file + PDF include model (F1003 GSM Modem) + Source code (Developed using PWCT but you will find the .PRG File so you can get the HarbourMiniGUI source code and compile it without the need to install PWCT)

Greetings,
Mahmoud Fayed
http://doublesvsoop.sourceforge.net

Tuesday, June 8, 2010

How to create harbour documentation by Massimo Belgrano

how to create harbour documentation?

Click on find in file  search in c:\harbour\src and subdir
Open source code in editor from find in file
Click on "Documentation Writer"    icon on the right-toolbar,
     
Position cursor somewhere inside a function body,
Click on "Load from current function" icon on the top-toolbar of "Document Writer" widget,


Look at the contents, few fields will be auto filled with various info from current function,
Complete the other fields with relevent information,
  
Click on "Save the documentation with current function",
Look at the function body in the editor, The NANFORUM compliant documentation will be inserted at the top of function's prototype.
Click on "Save written/updated documentation" icon, and provide the filename to save on disk,
Copy such generated .txt in /harbour/doc/en,
Open "Harbour Document Viewer" and you should be viewing newly written documentation there. Such generated file is ready to be uploaded to SVN, just send it to the list and group will decide if it needs something extra.

Friday, June 4, 2010

Who are the Active Contributors to the Harbour Project ?

According to Viktor in a recent post, the active (made a commit in the last 3 years) list of developers for the harbour Project  are as follows :-
  1. Alexander Kresin
  2. Antonio Carlos Pantaglione
  3. April White
  4. Belgrano Massimo
  5. Chen Kedem
  6. David Arturo Macias Corona
  7. Enrico Maria Giordano
  8. Francesco Saverio Giudice
  9. Istvan Bisz
  10. Jean lefebvre
  11. Jose Luis Capel
  12. Lorenzo Fiorini
  13. Luis Krause
  14. Marek Paliwoda
  15. Maurilio Longo
  16. Miguel Angel Marchuet Frutos
  17. Mindaugas Kavaliauskas
  18. Petr Chornyj
  19. Phil Barnett
  20. Phil Krylov
  21. Pritpal Bedi
  22. Przemyslaw Czerpak
  23. Ryszard Glab
  24. Teo Fonrouge
  25. Tomaz Zupan
  26. Vailton Renato
  27. Viktor Szakats
  28. Xavi

Monday, March 29, 2010

hbIDE is ready !

hbIDE, as the name implies, Harbour's Integrated Development Environment, is an open-source, multi-platform, project hosted inside Harbour's SVN repository. hbIDE is aimed at simplifying the process of project life-cycle comprising, setting-up the project components, editing the sources, building them to final binaries.

Currently, only Harbour as a compiler is supported, and hopefully soon, its domain will be extended to xHarbour, Xbase++, Clipper, Clip, Flagship.

The central essense of hbIDE is to provide a single-window interface to carry on all related actions for an application project to materialize, without needing any other tool in the process. This concept is extended to make use of n number of C compilers from within the same project definition.

For Harbour projects, hbIDE will take use of the its powerful make system, hbMK2. For other compilers, mechanism will be provided to define compiler, linker commands and source definitions. This will, usually, be a one time process, and for rest of the life of the project hbIDE will take over.

The topics enumerated at the left are just an indication what will go inside them. I will be updating them as time will permit, though my primary attention is the development of hbIDE.

To be just familiar with how the interface may look, a random screen shot of hbIDE, hosting my own production projects is presented below.


"plain" look:
onwelcomepage

"animated" look:
onwelcomepage_a


However, throughout these pages "Plain" look screen shots will be displayed.

More at  hbide.vouch.info

Sunday, December 27, 2009

Stable Harbour 2.0.0 (r13372) Released

CCH : Great news for Harbour Developers !

Hi All,

Harbour 2.0.0 (r13372) source archives and Windows binary
releases are available for download on sourceforge.net;

sourceforge.net/projects/harbour-project/files/

Make sure to check INSTALL doc "QUICK START" section and visit
our user forums at;

sourceforge.net/apps/phpbb/harbour-project/

Release notes;
-----------------------------------------------------------------------
Unified Windows release for most supported compilers and
x86, x64, WinCE/ARM, MS-DOS, OS/2, Linux target platforms.

Installed size; 214MB (54MB - 339MB)

The default installation will install MinGW compiler + x86 static and
shared libs, MSVC and BCC x86 libs and examples.

Options; x86 shared tools, x64 shared tools, MinGW x64 and
WinCE-ARM libs, MSVC x64 libs, Open Watcom x86 libs,
shared x64/WinCE-ARM libs, MS-DOS (watcom) libs, OS/2 (watcom)
libs, Linux (watcom) libs.

Usage;
1) install/unpack to any directory (C;\hb20)
2) go to bin dir (optional if you specify path for hbmk2)
3) For x86 executable, type; ’hbmk2 ../tests/hello.prg’
4) For x64 executable, type; ’hbmk2 ../tests/hello.prg -compiler=mingw64’
[needs mingw64 to be installed in ’comp/mingw64’ dir beforehand]
5) For WinCE/ARM executable, type; ’hbmk2 ../tests/hello.prg -platform=wce’
[needs cegcc to be installed in ’comp/mingwarm’ dir beforehand]
6) For MS-DOS executable, type; ’hbmk2 ../tests/hello.prg -platform=dos’
[needs OpenWatcom to be installed in ’comp/watcom’ dir beforehand]
7) For Linux executable, type; ’hbmk2 ../tests/hello.prg -platform=linux’
[needs OpenWatcom to be installed in ’comp/watcom’ dir beforehand]

Tool/lib versions used to create this package;
-----------------------------------------------------------------------

Compiler tools
--------------

MinGW GNU C 4.4.1 TDM-2 (included)
MinGW w64 GNU C 4.5.0-20091118
MinGW CEGCC 4.4.0
MSVC 2008 (version bundled with MS Windows SDK 7)
Open Watcom C 1.8
Borland C/C++ 5.5.1

External lib dependencies
-------------------------

ACE 9.10
Allegro 4.2.2
Blat 2.6.2
Cairo 1.8.8
libcurl 7.19.6
Firebird 2.1.3
FreeImage 3.13.0
GD 2.0.35
MySQL 5.1.41
OpenSSL 0.9.8k
PostgreSQL 8.4.2-1
QT 4.5.3
WATTCP 2.2.10

Changes since previous (2.0.0beta3 20090905) release;
-----------------------------------------------------------------------

- Harbour updated to r13359 (from r12422)
- MinGW CEGCC updated to 4.4.0
- upx updated to 3.04.
- MinGW 4.4.1 updated to TDM-2 release fixing a performance problem.
- MinGW w64 updated to latest binary release.
- DJGPP build in unified release replaced with OpenWatcom MS-DOS build.
- External libs updated (except OpenSSL and libcurl).
- hbwin cleanups/fixes (printer handling) and improvements (mutex, MAPI, misc)
- hbwin OLE2, ActiveX support improved and finalized.
- hbwin full UNICODE support and cleanups.
- hbwin basic win64 .dll support.
- hbtip POP3/SMTP fixes, encoding/charset support.
- Added hbmemio contrib.
- hbnetio finalized.
- hbqt cleanups and improvements, QT 4.6 support.
- hbide (early development stage).
- Documentation enhancements; INSTALL and doc/xhb-diff.txt.
- hbmk2 got support to convert xMate, hbmake and xbuild make files to .hbp
format.
- Added hbsms contrib library (to send SMS text messages in multiplatform way).
- gtwvg now builds in win64 mode.
- Rudimentary port of GTWVW (find it in examples)
- New hbcairo wrapper for cairo lib.
- Improved code portability for startup code, C++ mode and
to support for old GCC versions.
- Added public Harbour C level API to handle GC collected pure pointers.
- Added workaround fox Pelles C 6.0 bug, so now it can be used
with Harbour for win32 and wince. Win64 build still doesn’t work,
due to other POCC6 bugs.
- Fixed to support MSVC 6.0.
- dlmalloc memory allocator now also optimized for MT mode.
- DJGPP builds received support for .dxe dynamic libs.
- MS-DOS build included in unified release package is now built
with OpenWatcom rather than DJGPP.
- OpenWatcom now builds in plain C mode (instead of C++)
- Included MSVC build is now a UNICODE build.
- Changed all Harbour to use WIDE Windows API calls only in UNICODE mode.
- New Harbour C level UTF-8 and UTF-16 string handling functions.
- Rewritten internal codepage and collation support. Collations
are now ensured to be CA-Cl*pper compatible.
- HB_TRANSLATE() now supports UTF-8.
- OS/2 platform support improvements (watcom, .dll support, GCC OMF support).
- gtxwc fixes.
- General finalization to *nix Harbour dynamic library generation built into
build system.
- Generalized the way zlib and pcre embedded sources are handled.
- Finalized new pure GNU Make based build system.
- Embedded libharu made available for MS-DOS Harbour builds,
plus many other leveling of MS-DOS port.
- Added Blowfish encryption functions to core.
- Added experimental win64 binary build of GNU Make.
- Synced with some new features that appeared in xhb, plus some missing
features from past versions.
- New Harbour port to Haiku/BeOS.
- Updated embedded components.
- Cleaned all test code from Harbour -w3 level warnings.
- hbmk2 now supports the same C warning levels as build system.
- hbmk2 now supports built-in native .c / .prg dependency detection.
- hbmk2 tested/finalized for *nix systems.
- hbmk2 now supports upx on *nix systems.
- New hbdoc2 tool at development stage.
- Support for linux/open64, linux/clang compilers.
- Build system now uses automatic version detection for MSVC compilers.
- Core trace message functionality improvements (new .prg level
interface, Windows OutputDebugString support)
- New SET( _SET_DBCODEPAGE ).
- RDDADS fixes.
- Removed support for harbour.cfg and Harbour compiler -go output mode.
- New Harbour types (HB_SIZE, HB_BOOL, etc).
- Moved rddado from contrib area to examples.
- Deleted hbmake from examples.
- Many other smaller improvements, additions, fixes, cleanups.
- For 3rd party developers it’s recommended to look for the word
"incompatibility" in ChangeLog to find spots which may imply changes
on their part.

Changes since previous (2.0.0beta2 20090624) release;
-----------------------------------------------------------------------

- Harbour updated to r12422 (from r11508)
- Rewritten socket library.
- Fixed remaining Clipper compatibility issues (@.clp, SET PROC TO, DO WITH, etc)
- Added replaceable core file I/O layer.
- Reworked build system with integrated dynlib creation, cross-platform
support, compiler and external component autodetection and much more.
- MinGW updated to 4.4.1
- MinGW x64 updated to 4.5.0 (20090905)
- Finalizing ActiveX/OLE2 support.
- Timestamp/datetime support in core.
- Added MT support for dos platform.
- Added socket support for dos platform (via WATTCP lib).
- Added hbnetio lib client/server file I/O implementation.
- hbxbp lib about feature complete.
- wce/msvcarm target improvements, sunpro compiler support.
- hbssl OpenSSL wrapper lib.
- SSL support in hbtip lib.
- Serial communication fixes in hbwin/hbtpathy on win platform.
- Lots of other additions and some fixes.
- Changed default install path to be ’hb20’ rather than ’harbour20’,
to avoid long filenames.
- Replaced mingw64 built x64 shared tools with msvc64 builds, as
the former didn’t work.
- Included hbqt lib which links against static QT libs.

Changes since previous (2.0.0beta1 20090609) release;
-----------------------------------------------------------------------
- Harbour updated to r11508 (from r11287)
- New User’s Forum linked
- upx compressor included in install package
- DOS cross build libs included in install package
- preparation to host 3rd party packages inside Harbour directory tree
- new "zero-conf" library install system in preparation
- hbmk2; lots of minor refinements, support for all free compilers
in embedded form, support spaces in filenames/paths, all Harbour
supported C compilers have now complete support in hbmk2
- DOS support tested and required fixes applied
- embedded compilers moved to ’comp’ subdir
- support for latest MinGW x64 and MSVS 2010 compilers
- extended INSTALL with new examples and app build quick guide
- icon for installer and hbrun tool
- hbxbp and hbqt enhancements
- hbwin refinements and better compatibility
- new uhttpd2 sessioned HTTP server
- C++ build support for all compilers, new HB_WAEVAL() function,
new xpp (Xbase++ compatibility) lib, .hrb loading enhancements
- DBU, RL, SuperLib fixes.
- MinGW64 updated to 4.4.1
- There were a few changes in this release which may require updating
your source code (hb_par*()/hb_stor*() in .c files and GTWVG WIN_*()
function in .prg files). Search for ’incompatible’ word in ChangeLog
for more.
-----------------------------------------------------------------------

Changes since previous (1.1.0dev 20090602) release;
-----------------------------------------------------------------------
- Harbour updated to r11287 (from r11179)
- all contrib tests included in install package
- All 3rd party packages upgraded to latest version.
- hbmk2; project support, new file extensions, fixes, Harbour 1.0.x
support.
- further simplified/updated build process and instructions
- hbqt many enhancements
- almost full xhb compatibility
- ’terminal’ fixed in examples
- source formatter, Cl*pper RL tool, legacy hbmake added
- MT Xbase++ compatibility
-----------------------------------------------------------------------

Changes since previous (1.1.0dev 20090408) release;
-----------------------------------------------------------------------
- Harbour updated to r11179 (from r10819)
- Updated hbmk2 (filter issues + experimental Harbour 1.0.x support)
- Included contrib tests/utils
- Full and now standalone ’examples’
- ’tests’ with subdirs included.
- No longer included pocc/pocc64/poccarm libs.
- QT updated to 4.5.1
- MinGW updated to 4.4.0

--
Brgds,
Viktor Szakats

Welcome to Clipper... Clipper... Clipper


In 1997, then using Delphi 3, I had already created 32-bits Windows applications for HRIS, ERP and CRM. In 2007, using Ruby on Rails, an AJAX powered CRM site running on Apache & MySQL was created and I am now using Visual Studio .Net 2008 to create web-based projects and Delphi 7 for Win32 applications using SQL2005 & DBFCDX.

So, why then am I reviving the Original Clipper... Clipper... Clipper via a Blog as CA-Clipper is a programming language for the DOS world ? Believe it or not, there are still some clients using my mission-critical CA-Clipper applications for DOS installed in the late 80's and up to the mid 90's. This is testimony to CA-Clipper's robustness as a language :-)

With the widespread introduction of Windows 7 64-bits as the standard O/S for new Windows based PCs & Notebooks, CA-Clipper EXE simply will not work and it has become imperative for Clipper programmers to migrate immediately to Harbour to build 32/64 bits EXEs

Since 28th January 2009, this blog has been read by 134,389 (10/3/11 - 39,277) unique visitors (of which 45,151 (10/3/11 - 13,929) are returning visitors) from 103 countries and 1,574 cities & towns in Europe (37; 764 cities), North America (3; 373 cities) , Central America & Caribeans (6; 13 cities), South America(10; 226 cities), Africa & Middle-East (12; 44 cities) , Asia-Pacific (21; 175 cities). So, obviously Clipper is Alive & Well : -)


TIA & Enjoy ! (10th October 2012, 11:05; 13th November 2015)


Original Welcome Page for Clipper... Clipper... Clipper

This is the original Welcome Page for Clipper... Clipper... Clipper, which I am republishing for historical and sentimental reasons. The only changes that I have made was to fix all the broken links. BTW, the counter from counter.digits.com is still working :-)

Welcome to Chee Chong Hwa's Malaysian WWW web site which is dedicated to Clipperheads throughout the world.

This site started out as a teeny-weeny section of Who the heck is Chee Chong Hwa ? and has graduated into a full blown web site of more than 140 pages (actually hundreds of A4 size pages) ! This is due to its growing popularity and tremendous encouragements from visiting Clipperheads from 100 countries worldwide, from North America, Central America, Caribbean, South America, Europe, Middle-East, Africa and Asia-Pacific. Thanx Clipperheads, you all made this happen !


What is Clipper ?

You may ask, what is this Clipper stuff ? Could Clipper be something to do with sailing as it is the name of a very fast sailing American ship in the 19th century ?

Well, Clipper or to be precise, CA-Clipper is the premier PC-Software development tool for DOS. It was first developed by Nantucket Corporation initially as a compiler for dBase3+ programs. Since then, CA-Clipper has evolved away from its x-base roots with the introduction of lexical scoping & pre-defined objects like TBrowse. As at today, the most stable version ofClipper is 5.2e while the latest version, 5.3a was introduced on 21 May 1996.

As at 11th November, 1996, an unofficial 5.3a fixes file was made available by Jo French. See the About CA-Clipper 5.3a section for more details. BTW, Jo French uploaded the revised 5.3a fixes file on 20th November, 1996.

Latest News

The latest news is that CA has finally released the long-awaited 5.3b patch on 21 May, 1997.

For 5.3b users, you must a take a look at Jo French's comments on unfixed bugs in 5.3b.

BTW, have you used Click ? If you're a serious Clipperprogrammer and need an excellent code formatter, Click is a natural choice. How to get it ? Simple, access Phil Barnett's site via my Cool Clipper Sites.

32-bits Clipper for Windows ?

Have you tried Xbase ++ ? Well, I have and compared to Delphi (my current Windows programming tool of choice), I'm still sticking to Delphi.

Anyway, you should visit the Alaska Home Page. Give it a chance and then draw your own conclusions !.

The Harbour Project

Is this the future of Xbase ? Take a look at at the Harbour Project

You are Visitor # ...

According to counter.digits.com, you are visitor since 3 June 1996.

If you like or dislike what you see on this website, please drop me a line by clicking the email button at the bottom of this page or better still, by filling out the form in my guest book. If you are not sure what to write,click here to take a look at what other Clipperheads have to say.