Page 2 of 3

Re: moving to MSVC 32 bits

PostPosted: Mon Feb 25, 2013 6:39 pm
by lucasdebeltran
Rimantas,

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

It works very good.

Re: moving to MSVC 32 bits

PostPosted: Mon Feb 25, 2013 6:59 pm
by Rimantas
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 ... :(

Re: moving to MSVC 32 bits

PostPosted: Mon Feb 25, 2013 9:54 pm
by Richard Chidiak
Antonio

Is this the product to download ?

Visual Studio 2010 Express All-in-One ISO

Tia

Richard

Re: moving to MSVC 32 bits

PostPosted: Mon Feb 25, 2013 9:56 pm
by lucasdebeltran
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.

Re: moving to MSVC 32 bits

PostPosted: Tue Feb 26, 2013 4:33 am
by TimStone
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

Re: moving to MSVC 32 bits

PostPosted: Tue Feb 26, 2013 9:51 am
by lucasdebeltran
Timm,

Did you notice an increase on speed?.

Thanks.

Re: moving to MSVC 32 bits

PostPosted: Tue Feb 26, 2013 10:28 am
by Rimantas
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 !

Re: moving to MSVC 32 bits

PostPosted: Tue Feb 26, 2013 10:31 am
by Rimantas
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 ... :)

Re: moving to MSVC 32 bits

PostPosted: Tue Feb 26, 2013 4:56 pm
by TimStone
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

Re: moving to MSVC 32 bits

PostPosted: Tue Feb 26, 2013 5:10 pm
by Rimantas
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: Select all  Expand view

#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: Select all  Expand view

   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 !

Re: moving to MSVC 32 bits

PostPosted: Tue Feb 26, 2013 5:28 pm
by lucasdebeltran
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,

Re: moving to MSVC 32 bits

PostPosted: Tue Feb 26, 2013 5:42 pm
by Rimantas
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 ?

Re: moving to MSVC 32 bits

PostPosted: Tue Feb 26, 2013 10:31 pm
by lucasdebeltran
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.

Re: moving to MSVC 32 bits

PostPosted: Wed Feb 27, 2013 6:39 am
by Rimantas
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 ! :)

Re: moving to MSVC 32 bits

PostPosted: Wed Feb 27, 2013 7:56 am
by Antonio Linares
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 :-)