FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour moving to MSVC 32 bits
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: moving to MSVC 32 bits
Posted: Mon Feb 25, 2013 06:39 PM

Rimantas,

The express version is free, but you have to register to obtain a free key code.

It works very good.

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 437
Joined: Fri Oct 07, 2005 12:56 PM
Re: moving to MSVC 32 bits
Posted: Mon Feb 25, 2013 06:59 PM
lucasdebeltran wrote:Rimantas,

The express version is free, but you have to register to obtain a free key code.

It works very good.


Thanks for the answer Lucas ! It's good news .. :-) . So maybe I did not true choice - from mine search and Antonio direct it's the same . I directed to dowload Visual C++ 2010 Express . Now repeated instalation . In mine case D:\VS10 folder - no any SDK file ( kernel32.lib , user32.lib ) . Can't understand what I'm doing bad ... :-)
Rimantas U.
Posts: 946
Joined: Thu Oct 06, 2005 07:05 PM
Re: moving to MSVC 32 bits
Posted: Mon Feb 25, 2013 09:54 PM

Antonio

Is this the product to download ?

Visual Studio 2010 Express All-in-One ISO

Tia

Richard

http://www.cbati.com

Uestudio
Fwh 13.05 Harbour 3.2 MSVC 2013
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: moving to MSVC 32 bits
Posted: Mon Feb 25, 2013 09:56 PM

Hello,

Please, use this link:

http://go.microsoft.com/?linkid=9709949

It worked fine for me.

In fact, applications compiled with MSVC 2010 seems to be faster, particularry on painting.

Hope it helps.

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Re: moving to MSVC 32 bits
Posted: Tue Feb 26, 2013 04:33 AM

A few comments here.

1) Do not use FWH 11.12 ! Its time to upgrade. Antonio made a lot of updates in 2012 that related to MSVC, so you should get the current version !

2) There are other threads on this topic. In one I posted the UE Studio settings ( for their make file system ). I use that and it works very well, and is quite quick.

3) Generally your code should work fine, but there may be a few issues, especially with 3rd party products. You will want to post specific questions if you run into problems.

I have a VERY substantial app built with FWH / Harbour 3 / MSVC 2010. I only have one problem with that build which I need to work on with Antonio. Otherwise everything is now working beautifully.

Tim

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
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: moving to MSVC 32 bits
Posted: Tue Feb 26, 2013 09:51 AM

Timm,

Did you notice an increase on speed?.

Thanks.

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 437
Joined: Fri Oct 07, 2005 12:56 PM
Re: moving to MSVC 32 bits
Posted: Tue Feb 26, 2013 10:28 AM
lucasdebeltran wrote:Hello,

Please, use this link:
http://go.microsoft.com/?linkid=9709949

It worked fine for me.

In fact, applications compiled with MSVC 2010 seems to be faster, particularry on painting.

Hope it helps.


Thanks Lucas . It's the same package . I found SDK folder . Thought I directed install to D:\VS10 folder , SDK libs it writed to "C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib" . Now I'll try to build application ...

With best regards !
Rimantas U.
Posts: 437
Joined: Fri Oct 07, 2005 12:56 PM
Re: moving to MSVC 32 bits
Posted: Tue Feb 26, 2013 10:31 AM
TimStone wrote:A few comments here.

1) Do not use FWH 11.12 ! Its time to upgrade. Antonio made a lot of updates in 2012 that related to MSVC, so you should get the current version !

2) There are other threads on this topic. In one I posted the UE Studio settings ( for their make file system ). I use that and it works very well, and is quite quick.

3) Generally your code should work fine, but there may be a few issues, especially with 3rd party products. You will want to post specific questions if you run into problems.

I have a VERY substantial app built with FWH / Harbour 3 / MSVC 2010. I only have one problem with that build which I need to work on with Antonio. Otherwise everything is now working beautifully.

Tim


Thanks for your advice , Tim . I'll try MsVC with own old version and then will be seems what to do in future . Though Harbour + MinGW too is good ... :-)
Rimantas U.
Posts: 3022
Joined: Fri Oct 07, 2005 01:45 PM
Re: moving to MSVC 32 bits
Posted: Tue Feb 26, 2013 04:56 PM

I haven't done speed tests. However, it may be a bit faster.

My main reason for moving to MSVC was compatibility. I have an old xHarbour build that I use still for my distributed product. I stopped paying for upgrades because there simply weren't any. There is so much new development in Windows and I feel it is good to use the newer tools.

I have Visual Studio 2012 but have not tried it yet with my builds.

The biggest issue is identifying all of the libraries that need to be used with the applications.

Tim

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
Posts: 437
Joined: Fri Oct 07, 2005 12:56 PM
Re: moving to MSVC 32 bits
Posted: Tue Feb 26, 2013 05:10 PM
lucasdebeltran wrote:
It worked fine for me.
In fact, applications compiled with MSVC 2010 seems to be faster, particularry on painting.


Lucas , can you provide some help to me ? I installed VS 2010 Studio express , from Antonio get make files . Here it's mine first mak with VC ++ 2010 :

Code (fw): Select all Collapse
#Microsoft VS2010 make sample, (c) FiveTech Software 2010

VCDIR=D:\VS10\VC
SDKDIR="C:\Program Files\Microsoft SDKs\Windows\v7.0A"
HBDIR=D:\a\hrbm
FWDIR=D:\a\fwh

.SUFFIXES: .prg .c .obj .rc .res

engel.exe : engel.obj func.obj func_dsg.obj func_dt.obj texcels.obj tarray.obj engel.res
聽 聽echo engel.obj func.obj func_dsg.obj func_dt.obj texcels.obj tarray.obj > msvc.tmp

聽 聽echo $(FWDIR)\lib\FiveH32.lib $(FWDIR)\lib\FiveHC32.lib >> msvc.tmp

聽 聽echo $(HBDIR)\lib\hbrtl.lib 聽 聽>> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbvm.lib 聽 聽 >> msvc.tmp
聽 聽echo $(HBDIR)\lib\gtgui.lib 聽 聽>> msvc.tmp
聽 聽echo $(HBDIR)\lib\hblang.lib 聽 >> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbmacro.lib 聽>> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbrdd.lib 聽 聽>> msvc.tmp
聽 聽echo $(HBDIR)\lib\rddntx.lib 聽 >> msvc.tmp
聽 聽echo $(HBDIR)\lib\rddcdx.lib 聽 >> msvc.tmp
聽 聽echo $(HBDIR)\lib\rddfpt.lib 聽 >> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbsix.lib 聽 聽>> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbdebug.lib 聽>> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbcommon.lib >> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbpp.lib 聽 聽 >> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbwin.lib 聽 聽>> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbcplr.lib 聽 >> msvc.tmp
聽 聽echo $(HBDIR)\lib\xhb.lib 聽 聽 聽>> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbpcre.lib 聽 >> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbct.lib 聽 聽 >> msvc.tmp
聽 聽echo $(HBDIR)\lib\hbcpage.lib 聽>> msvc.tmp

聽 聽echo $(SDKDIR)\lib\kernel32.lib 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\user32.lib 聽 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\gdi32.lib 聽 聽 >> msvc.tmp
聽 聽echo $(SDKDIR)\lib\winspool.lib 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\comctl32.lib 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\comdlg32.lib 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\advapi32.lib 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\shell32.lib 聽 >> msvc.tmp
聽 聽echo $(SDKDIR)\lib\ole32.lib 聽 聽 >> msvc.tmp
聽 聽echo $(SDKDIR)\lib\oleaut32.lib 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\uuid.lib 聽 聽 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\odbc32.lib 聽 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\odbccp32.lib 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\iphlpapi.lib 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\mpr.lib 聽 聽 聽 >> msvc.tmp
聽 聽echo $(SDKDIR)\lib\version.lib 聽 >> msvc.tmp
聽 聽echo $(SDKDIR)\lib\wsock32.lib 聽 >> msvc.tmp
聽 聽echo $(SDKDIR)\lib\msimg32.lib 聽 >> msvc.tmp
聽 聽echo $(SDKDIR)\lib\oledlg.lib 聽 聽>> msvc.tmp
聽 聽echo $(SDKDIR)\lib\psapi.lib 聽 聽 >> msvc.tmp
聽 聽echo $(SDKDIR)\lib\gdiplus.lib 聽 >> msvc.tmp
聽 聽echo $(SDKDIR)\lib\winmm.lib 聽 聽 >> msvc.tmp

聽 聽IF EXIST engel.res echo engel.res >> msvc.tmp

聽 聽SET LIB=$(VCDIR)\lib
聽 聽$(VCDIR)\bin\link @msvc.tmp /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libc > link.log
聽 聽@type link.log
聽 聽@del engel.c
聽 聽@del func.c
聽 聽@del func_dsg.c
聽 聽@del func_dt.c 聽 
聽 聽@del texcels.c 聽 
聽 聽@del tarray.c
聽 聽@del msvc.tmp

engel.obj 聽 : engel.c
func.obj 聽 聽: func.c
func_dsg.obj : func_dsg.c
func_dt.obj : func_dt.c
texcels.obj : texcels.c
tarray.obj 聽: tarray.c

engel.c 聽 : engel.prg
func.c 聽 : func.prg
func_dsg.c : func_dsg.prg
func_dt.c : func_dt.prg
texcels.c : texcels.prg
tarray.c : tarray.prg

engel.res : engel.rc
聽 聽$(VCDIR)\bin\rc.exe -r -d__FLAT__ engel.rc 

.prg.c:
聽 聽$(HBDIR)\bin\harbour $< /n /i$(FWDIR)\include;$(HBDIR)\include

.c.obj:
聽 聽$(VCDIR)\bin\cl.exe -c -TP -W3 -I$(HBDIR)\include -I$(SDKDIR)\include -I$(VCDIR)\include $<


At first was error with cl.exe . I found that it's needfull to run VC ++ env.vars bat file . OK , run to cmd , run env. vars bat , run own make ( D:\VS10\VC\bin\nmake -fgo2.mak ) . Now I'm getting error with link - nmake fatal error U1077 : '\VS10\VC\bin\link' return code 0x460 . Can't understand - I alreday run vars bat . What I must to do also ? And maybe exist other solution with that enviroments vars ? It's very undoubt - it must run with cmd box .

Added :
I didn't noticed link log - maybe problem it's here :
Code (fw): Select all Collapse
聽 聽Creating library engel.lib and object engel.exp
engel.obj : error LNK2001: unresolved external symbol _HB_FUN_TMYSQLSERVER
engel.obj : error LNK2001: unresolved external symbol _HB_FUN_TVISTAMENU
FiveH32.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(PRV2PDF.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(TMETAFIL.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(HARBOUR.obj) : error LNK2019: unresolved external symbol _HB_FUN_FREELIBRARY referenced in function _HB_FUN_OLEGETPROPERTY
FiveH32.lib(GETTASKS.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(INI.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(IMAGE.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(DIALOG.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(WINDOW.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(FILENAME.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(SHELLAPI.obj) : error LNK2001: unresolved external symbol _HB_FUN_FREELIBRARY
FiveH32.lib(HELP32.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(PRV2PDF.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(TMETAFIL.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(HARBOUR.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(GETTASKS.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(INI.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(IMAGE.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(DIALOG.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(WINDOW.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(FILENAME.obj) : error LNK2019: unresolved external symbol _HB_FUN_LOADLIBRARY referenced in function _HB_FUN_CFILESUBDIR
FiveH32.lib(SHELLAPI.obj) : error LNK2001: unresolved external symbol _HB_FUN_LOADLIBRARY
FiveH32.lib(WINDOW.obj) : error LNK2001: unresolved external symbol _HB_FUN_XFREEPROC
engel.exe : fatal error LNK1120: 5 unresolved externals


Added again : how to build libmysql.lib from dll ? At first it must me created def file - how ? Manually ? Can any share with info ? :-)

With best regards !
Rimantas U.
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: moving to MSVC 32 bits
Posted: Tue Feb 26, 2013 05:28 PM

Rimatas,

Errors at Five32 are due to you are using and old FWH version. I don麓t get those errors with latest builds.

And the errors at engel.obj are because you are not linking TMYSQLSERVER function/class and TVISTAMENU. Latest, TVISTAMENU, is from Canal5 and included in Fivewin, maybe you made your own class or it is not included by mistake in your current FW version.

Maybe the fastest way to solve such problems, appart from TMYSQLSERVER, is updating your FWH version.

Regards,

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 437
Joined: Fri Oct 07, 2005 12:56 PM
Re: moving to MSVC 32 bits
Posted: Tue Feb 26, 2013 05:42 PM
lucasdebeltran wrote:Rimatas,

Errors at Five32 are due to you are using and old FWH version. I don麓t get those errors with latest builds.

And the errors at engel.obj are because you are not linking TMYSQLSERVER function/class and TVISTAMENU. Latest, TVISTAMENU, is from Canal5 and included in Fivewin, maybe you made your own class or it is not included by mistake in your current FW version.

Maybe the fastest way to solve such problems, appart from TMYSQLSERVER, is updating your FWH version.

Regards,


So Antonio sold to me a very buggy product ... :-) . TVistaMenu alreday existed in mine version . Maybe you know how to build libmysql lib from dll ? And how you are directing VC ++ vars ?
Rimantas U.
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: moving to MSVC 32 bits
Posted: Tue Feb 26, 2013 10:31 PM

Rimatas,

I set up the enviroment variables in vcvars in the system enviroment at Control Panel.

To create the lib:
impdef.exe mydll.def mydll.dll
lib.exe /def:mydll.def /out:mydll.def

The problem at your FWH build was that no one were using msvc 2010. Due to Timm Stone麓s interest, Antonio reacted very quickly and professional as usual and updated and make it fully compilant. It is important to keep the product updated to get latest changes.

Hope it helps.

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 437
Joined: Fri Oct 07, 2005 12:56 PM
Re: moving to MSVC 32 bits
Posted: Wed Feb 27, 2013 06:39 AM
lucasdebeltran wrote:
I set up the enviroment variables in vcvars in the system enviroment at Control Panel.
To create the lib:
impdef.exe mydll.def mydll.dll
lib.exe /def:mydll.def /out:mydll.def

The problem at your FWH build was that no one were using msvc 2010. Due to Timm Stone麓s interest, Antonio reacted very quickly and professional as usual and updated and make it fully compilant. It is important to keep the product updated to get latest changes.


Many thanks to you , Lucas ! :-)
Rimantas U.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: moving to MSVC 32 bits
Posted: Wed Feb 27, 2013 07:56 AM

Rimantas,

Microsoft delivers updates for Windows constantly, does that mean that Windows is buggy ? Not in my opinion, simply that a product can be enhanced and improved. The problem is not that there are bugs, the problem is that they may not get solved :-)

We publish new builds every month since years, I think that shows a great commitment to deliver updates that enhance FWH constantly and a very fast response to solve bugs :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com