MS Visual Studio

User avatar
Detlef
Posts: 209
Joined: Mon Feb 07, 2022 9:54 pm

MS Visual Studio

Post by Detlef »

Dear all,
I still use my SemWare editor to write my source code and rum buildx.bat to create my exe files.
Now I'd like to gain more comfort to my workflow.

I looked around to find a possibility to use the IDE Netbeans which I used for years for php development.
This was an excellent IDE to work with. Unfortunatelly there is no way to use it with FiveWin and xHarbour.

Here, in the forum I read about MS Visual Studio.
I have some question about the use of VS.
* can I use xHarbour with VS or will I have to use Harbour?
* do exe files built with VS need the complete MS Visual C++ Redistributable system files on the user's PC?

Thanks for each hint
Detlef
User avatar
TimStone
Posts: 2956
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA
Has thanked: 25 times
Been thanked: 2 times
Contact:

Re: MS Visual Studio

Post by TimStone »

I have used Visual Studio for years. However, I use Ultra Edit Studio for all my coding. I do use Harbour and FiveWin, both 32 bit and 64 bit versions.

Here is how I do it:

I code my programs in UE Studio. This allows me a lot of flexability since I may have files opened from several projects.

When I make modifiations, I "build" the program in Visual Studio which is also open on my desktop. This is very quick, and of course immediately detects any errors or conflicts.

Once it is built, it automatically executes the program, and I can test the changes. I can then immediately fix them in the code and rebuild the application.

For actual releases, I have a .bat/.mak combo ( though Antonio recommends hbMake2 ) which compiles and links the final distribution product.

I have placed the Visual Studio builds on test sites, and I only install the .EXE and appropriate .DLL files.

You can probably work fine with xHarbour. Visual Studio paths should point to those directories for the compiler, linker, include files, and .lib files. You use the Custom Build Tool to compile .prg files so just configure that for your xHarbour .exe files.

I have done this for many years and never have a problem. You could do everything with the Visual Studio editor, though in the past I did set it up to call the Ultra Edit editor by default within Visual Studio. It is a customizable IDE.

I hope this helps.
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
User avatar
Detlef
Posts: 209
Joined: Mon Feb 07, 2022 9:54 pm

Re: MS Visual Studio

Post by Detlef »

Many thanks, Tim for your valuable information.
Could you please, tell me if on the target computer which will run my VS built exe, if there the MS Visual C++ Redistributable must be installed?

Regards, Detlef
User avatar
TimStone
Posts: 2956
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA
Has thanked: 25 times
Been thanked: 2 times
Contact:

Re: MS Visual Studio

Post by TimStone »

I do not install the redistributable, and my clients have never had a problem. I believe that is only needed for .NET applications, but I'm not sure.

I include .dll's for some 3rd party products I use, and that is all.
Tim Stone
http://www.MasterLinkSoftware.com
http://www.autoshopwriter.com
timstone@masterlinksoftware.com
Using: FWH 23.10 with Harbour 3.2.0 / Microsoft Visual Studio Community 2022-24 32/64 bit
User avatar
Antonio Linares
Site Admin
Posts: 42597
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 40 times
Been thanked: 86 times
Contact:

Re: MS Visual Studio

Post by Antonio Linares »

Dear Detlef,

Do yourself a favour: start using Harbour and install Microsoft Visual Studio Community 2022

You will feel like driving a brand new car... :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Detlef
Posts: 209
Joined: Mon Feb 07, 2022 9:54 pm

Re: MS Visual Studio

Post by Detlef »

Thanks for encouraging me, Antonio.
A new car is always something fine. :D

I tried to find out if it's possible for my programming to change from xHarbour to Harbour.
But the first test gave me the following linking errors:

Code: Select all | Expand


│ FiveWin for Harbour 22.03 - Mar. 2022           Harbour development power  │▄
(c) FiveTech 1993-2022 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 │█
└────────────────────────────────────────────────────────────────────────────┘█
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Compiling...
Harbour 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011, http://harbour-project.org/
Compiling 'browse.prg' and generating preprocessed output to 'browse.ppo'...
Lines 5024, Functions/Procedures 1
Generating C source output to 'browse.c'... Done.
Embarcadero C++ 7.00 for Win32 Copyright (c) 1993-2015 Embarcadero Technologies, Inc.
browse.c:
Borland Resource Compiler  Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation.  All rights reserved.
Turbo Incremental Link 6.70 Copyright (c) 1997-2014 Embarcadero Technologies, Inc.
Error: Unresolved external '_HB_FUN_OCCURS' referenced from D:\ENTW\FWH22\LIB\FIVEH.LIB|VALTOSTR
Error: Unresolved external '_hb_strAtI' referenced from D:\ENTW\FWH22\LIB\FIVEH.LIB|VSTRFUN1
Error: Unresolved external '_HB_FUN___OLEVARIANTNEW' referenced from D:\ENTW\FWH22\LIB\FIVEH.LIB|ADOFUNCS
Error: Unresolved external '_HB_FUN_HB_BLEN' referenced from D:\ENTW\FWH22\LIB\FIVEH.LIB|OLEFUNCS
Error: Unresolved external '_hb_extIsNil' referenced from D:\ENTW\FWH22\LIB\FIVEHC.LIB|RICHEDIT
Error: Unresolved external '_HB_FUN_HB_TSTOUTC' referenced from D:\ENTW\FWH22\LIB\FIVEH.LIB|VALTOSTR
Error: Unable to perform link
* Linking errors *
 

I wanted to build the program 'browse' from the FWH samples folder.
Before I put the correct Paths into buildh.bat.
Must I edit something of my environment or in buildh.bat?
User avatar
Antonio Linares
Site Admin
Posts: 42597
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 40 times
Been thanked: 86 times
Contact:

Re: MS Visual Studio

Post by Antonio Linares »

Dear Detlef,

It seems as you are using an old Harbour version. Yours is Harbour 3.0.0 (Rev. 16951) and current one is Harbour 3.2.0dev (r2004201301)

Please download it from here:
https://github.com/FiveTechSoft/Harbour_builder/blob/master/harbour_win32_bcc_2020_10_19.zip

We have recently published a new zip file that contains all Harbour versions (in case that you want to test with Microsoft Visual Studio Community, or if you want to compare the results building with Borland, Microsoft or MinGW gcc):
https://www.fivetechsoft.com/files/harbour/harbour_all.zip
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Detlef
Posts: 209
Joined: Mon Feb 07, 2022 9:54 pm

Re: MS Visual Studio

Post by Detlef »

Thanks Antonio,
now I got the actual version of Harbour and the sample compiled like a charm.

But as with all new cars they have more sensitive brakes ;-)
I tried to compile my softare and Harbour complains
rg.prg(239) Error E0030 Syntax error "syntax error at ')'"

Code: Select all | Expand

  WITH OBJECT oBrwPos:aCols[ 2 ]
      :cSortOrder    := NIL
      :cOrder        := NIL
      :AddResource( "SEARCH_R" )
      :nHeadBmpNo    := 1
      :nHeadBmpAlign := AL_RIGHT
      :bRClickHeader := ;
      :bLClickHeader := { || if( oBrwPos:nArrayAt > 0,;
                                 ( nSel := nGetPosArt( oBrwPos:GetRect() ),;
                                   if( nSel > 0,;
                                       ( aPos[ oBrwPos:nArrayAt ][ 2 ] := aPosCfg[ nSel ][ _LEISTUNG ],;
                                         aPos[ oBrwPos:nArrayAt ][ 4 ] := aPosCfg[ nSel ][ _IS_KOST ],;
                                         aPos[ oBrwPos:nArrayAt ][ 5 ] := aMwStSaetze[ aPosCfg[ nSel ][ _MWSTSATZ ] ],;
                                         oBrwPos:Refresh(),;
                                         oBrwPos:SetFocus(),;
                                         oBrwPos:nColSel := 3, oBrwPos:aCols[ 3 ]:Edit();
                                       ), NIL ),;
                                        ), NIL ) } //<--- this is line 239
   END
 

With xHarbour this compiled okay.
I don't know what to correct in my code.
User avatar
carlos vargas
Posts: 1723
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: MS Visual Studio

Post by carlos vargas »

Code: Select all | Expand


      :bLClickHeader := { || IIf( oBrwPos:nArrayAt > 0,;
                                 ( nSel := nGetPosArt( oBrwPos:GetRect() ),;
                                   IIf( nSel > 0,;
                                   ( aPos[ oBrwPos:nArrayAt ][ 2 ] :=              aPosCfg[ nSel ][ _LEISTUNG ],;
                                     aPos[ oBrwPos:nArrayAt ][ 4 ] :=              aPosCfg[ nSel ][ _IS_KOST  ],;
                                     aPos[ oBrwPos:nArrayAt ][ 5 ] := aMwStSaetze[ aPosCfg[ nSel ][ _MWSTSATZ ] ],;
                                     oBrwPos:Refresh(),;
                                     oBrwPos:SetFocus(),;
                                     oBrwPos:nColSel := 3,;
                                     oBrwPos:aCols[ 3 ]:Edit();
                                   ), NIL ) ) , NIL ) } //<--- this is line 239
 
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
Detlef
Posts: 209
Joined: Mon Feb 07, 2022 9:54 pm

Re: MS Visual Studio

Post by Detlef »

Many thanks, Carlos.
It was that comma too much :oops:

Now my application is built without errors.
But I have a new issue.
My app created with xHarbour and bcc7 started within 1 second.
Now with pure Harbour and bcc7 up takes at least 7 up to 10 seconds before the start dialog is shown.

Is this normal for Harbour built apps?
User avatar
carlos vargas
Posts: 1723
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: MS Visual Studio

Post by carlos vargas »

It is not normal, I also come from xharbour and I have not noticed any affectation at the speed level, for better or worse, and there have been various apps, the only thing to point out is that I only use tmysql for my data, I have not used dbf for years
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
Detlef
Posts: 209
Joined: Mon Feb 07, 2022 9:54 pm

Re: MS Visual Studio

Post by Detlef »

Hi Carlos,
I must explain better…
the speed of the running app is okay.
I think it’s the same as with xHarbour.
Only the time it takes to start ist extremely different.
User avatar
Antonio Linares
Site Admin
Posts: 42597
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 40 times
Been thanked: 86 times
Contact:

Re: MS Visual Studio

Post by Antonio Linares »

Dear Detlef,

what does your app startup does that takes such time ?

Could you describe its steps ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Detlef
Posts: 209
Joined: Mon Feb 07, 2022 9:54 pm

Re: MS Visual Studio

Post by Detlef »

Dear Antonio,
my app just opens seven dbf files via dbfcdx in exclusive mode.
Then it checks if all Index files are present and created them if not.
After that I call my dialog for start which shows a button bar with 3 buttons and 3 XBrowses in one to many relationship.

My app runs on a local Windows 10 PC. Because my app is at the beginning those dbf files have a maximum of only 10 records.
As I described it takes about 1 second to start when built with xHarbour and about 6 or 7 seconds built with pure Harbour after I typed the exe name at my DOS prompt.
I guess what could be the reason.
User avatar
Antonio Linares
Site Admin
Posts: 42597
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 40 times
Been thanked: 86 times
Contact:

Re: MS Visual Studio

Post by Antonio Linares »

Dear Detlef,

you could save on a log file several calls to GetTickCount() to see what part consumes more time

My guess is that Harbour does more things than xHarbour, but due to its more robust and safe design

But I may be wrong. Lets wait for your results... :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply