Page 3 of 3

Re: moving to MSVC 32 bits

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


Antonio, excuse for me if I unsightly joked ... :-) . It's all right , your efforts are very valuables and FiveWin very fine . I love it .. :)

Re: moving to MSVC 32 bits

PostPosted: Sat Mar 02, 2013 6:05 pm
by lucasdebeltran
Antonio,

With FW 13.02 and MSVC 2010 I get those warnings at link.

Please, how can be avoided?.

Code: Select all  Expand view
fivehc32.lib(DRIVES.obj) : warning LNK4006: _HB_FUN_GETCURDIR ya se definió en amedida_fivewinmsvc.lib(varios.obj); segunda definición omitida
fiveh32.lib(HARBOUR.obj) : warning LNK4006: _HB_FUN_LOADLIB32 ya se definió en fivehc32.lib(CALDLL32.obj); segunda definición omitida
fiveh32.lib(HARBOUR.obj) : warning LNK4006: _HB_FUN_FREELIB32 ya se definió en fivehc32.lib(CALDLL32.obj); segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETOPEN ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETCONNECT ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETCLOSEHANDLE ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_FTPOPENFILE ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETWRITEFILE ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETREADFILE ya se definió en ftp.obj; segunda definición omitida
hbrtl.lib(dirdrive.obj) : warning LNK4006: _HB_FUN_DISKCHANGE ya se definió en fivehc32.lib(DISK.obj); segunda definición omitida
hbct.lib(disk.obj) : warning LNK4006: _HB_FUN_DRIVETYPE ya se definió en fivehc32.lib(C5CNEW.obj); segunda definición omitida
hbct.lib(files.obj) : warning LNK4006: _HB_FUN_DELETEFILE ya se definió en fivehc32.lib(C5CNEW.obj); segunda definición omitida
c5taskmsvc.lib(vmenu.obj) : warning LNK4006: _HB_FUN_DEGRADASO ya se definió en fivehc32.lib(C5CNEW.obj); segunda definición omitida
   Creando biblioteca gestionmsvc.lib y objeto gestionmsvc.exp
gestionmsvc.exe : warning LNK4088: la imagen se está generando debido a la opción /FORCE; quizá la imagen no se pueda ejecutar
 



Also, please when you have time build new Harbour build for MSVC 2010. I tried myself but some libs, such as hbwin.lib, where not created. I don´t know why.

Thank you very much.

Re: moving to MSVC 32 bits

PostPosted: Sun Mar 03, 2013 7:59 am
by Antonio Linares
Lucas,

On each warning, you get a description that explains what is going on:

fivehc32.lib(DRIVES.obj) : warning LNK4006: _HB_FUN_GETCURDIR ya se definió en amedida_fivewinmsvc.lib(varios.obj); segunda definición omitida

function GetCurDir() is duplicated in both drives.c and in varios.c (or OBJ). You can not have duplicates. Don't use the /FORCE clause, instead remove each duplicated function.

Re: moving to MSVC 32 bits

PostPosted: Sun Mar 03, 2013 9:41 am
by lucasdebeltran
Antonio,

Thank you very much. Appart from that sample, the rest are in Fivewin´s libs.

For example:

fiveh32.lib(HARBOUR.obj) : warning LNK4006: _HB_FUN_LOADLIB32 ya se definió en fivehc32.lib(CALDLL32.obj); segunda definición omitida
fiveh32.lib(HARBOUR.obj) : warning LNK4006: _HB_FUN_FREELIB32 ya se definió en fivehc32.lib(CALDLL32.obj); segunda definición omitida

Please, could you fix it?.


Also, having a C function like HB_FUNC( INTERNETOPEN2 ), how can I declare such function as static?.

Thank you very much.

Re: moving to MSVC 32 bits

PostPosted: Sun Mar 03, 2013 11:22 am
by Antonio Linares
Lucas,

These functions are duplicated in ftp.prg or ftp.c. There is no ftp.* in FWH neither in Harbour, unless I miss something:

fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETOPEN ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETCONNECT ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETCLOSEHANDLE ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_FTPOPENFILE ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETWRITEFILE ya se definió en ftp.obj; segunda definición omitida
fiveh32.lib(WININET.obj) : warning LNK4006: _HB_FUN_INTERNETREADFILE ya se definió en ftp.obj; segunda definición omitida

Re: moving to MSVC 32 bits

PostPosted: Sun Mar 03, 2013 11:28 am
by Antonio Linares
Lucas,

Removed function DiskChange() from FWH. We use now Harbour's DiskChange() :-)

Re: moving to MSVC 32 bits

PostPosted: Sun Mar 03, 2013 12:49 pm
by lucasdebeltran
Antonio,

Thank you.

FTP.c is a patch for previous FWH, but now it is not needed.

There are still pending:

Code: Select all  Expand view

fiveh32.lib(HARBOUR.obj) : warning LNK4006: _HB_FUN_LOADLIB32 ya se definió en fivehc32.lib(CALDLL32.obj); segunda definición omitida

fiveh32.lib(HARBOUR.obj) : warning LNK4006: _HB_FUN_FREELIB32 ya se definió en fivehc32.lib(CALDLL32.obj); segunda definición omitida

hbrtl.lib(dirdrive.obj) : warning LNK4006: _HB_FUN_DISKCHANGE ya se definió en fivehc32.lib(DISK.obj); segunda definición omitida

hbct.lib(disk.obj) : warning LNK4006: _HB_FUN_DRIVETYPE ya se definió en fivehc32.lib(C5CNEW.obj); segunda definición omitida

hbct.lib(files.obj) : warning LNK4006: _HB_FUN_DELETEFILE ya se definió en fivehc32.lib(C5CNEW.obj); segunda definición omitida

 



Antonio, how can I declare a static C function, for, for example, HB_FUNC( DELETEFILE )?.


Also, for your information RESALLFREE() function is not available for MSVC?.


Thank you very much for your attention and quick reply as always;).

Re: moving to MSVC 32 bits

PostPosted: Sun Mar 03, 2013 3:07 pm
by Antonio Linares
Lucas,

static HB_FUNC( DELETEFILE )

Re: moving to MSVC 32 bits

PostPosted: Sun Mar 03, 2013 6:19 pm
by ADutheil
Antonio,

When I remove /FORCE I can´t link due to error:

FIVEHC32.lib(C5CNEW.obj) : error LNK2005: _HB_FUN_DRIVETYPE already defined in HBCT.lib(disk.obj)

Re: moving to MSVC 32 bits

PostPosted: Sun Mar 03, 2013 8:13 pm
by Antonio Linares
André,

You can keep using /FORCE by now. but in next FWH build, we will remove function DriveType() from FWH and use the one from Harbour's hbct.lib :-)

Re: moving to MSVC 32 bits

PostPosted: Mon Mar 04, 2013 12:12 am
by ADutheil
OK thanks.

Re: moving to MSVC 32 bits

PostPosted: Mon Mar 04, 2013 2:26 pm
by lucasdebeltran
Antonio,

Just for revision. Those are duplicate warnings:
fiveh32.lib(HARBOUR.obj) : warning LNK4006: _HB_FUN_LOADLIB32 ya se definió en fivehc32.lib(CALDLL32.obj); segunda definición omitida

fiveh32.lib(HARBOUR.obj) : warning LNK4006: _HB_FUN_FREELIB32 ya se definió en fivehc32.lib(CALDLL32.obj); segunda definición omitida

hbrtl.lib(dirdrive.obj) : warning LNK4006: _HB_FUN_DISKCHANGE ya se definió en fivehc32.lib(DISK.obj); segunda definición omitida

hbct.lib(disk.obj) : warning LNK4006: _HB_FUN_DRIVETYPE ya se definió en fivehc32.lib(C5CNEW.obj); segunda definición omitida

hbct.lib(files.obj) : warning LNK4006: _HB_FUN_DELETEFILE ya se definió en fivehc32.lib(C5CNEW.obj); segunda definición omitida



Thank you for your assistance with MSVC 2010. It seems to be working very good. Also, I think there is an increase on speed. Do you think is it possible?.


Also, why ResAllFree() function is not available under MSVC libs?.

Thank you very much.

Re: moving to MSVC 32 bits

PostPosted: Mon Mar 04, 2013 5:25 pm
by Antonio Linares
Lucas,

I think there is an increase on speed. Do you think is it possible?


No :-)

C compilers are just translators to highly optimized assembler code, and the resulting assembler is quite similar for all of them. And nothing can't run faster than assembler :-)

Re: moving to MSVC 32 bits

PostPosted: Tue Mar 19, 2013 4:11 pm
by ADutheil
Antonio,

I got another one to remove from FWH:

FIVEHC32.lib(STRTOKEN.obj) : warning LNK4006: _HB_FUN_STRTOKEN already defined in HBMISC.lib(stringsx.obj); second definition ignored

Re: moving to MSVC 32 bits

PostPosted: Tue Mar 19, 2013 5:40 pm
by Antonio Linares
André,

We should not remove that one, as StrToken() is a long time used function in FWH, unless they behave exactly the same...