UE Studio Config - Harbour 3.0, MSVC, FWH

User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by Antonio Linares »

Frank,

Here it is working fine simply doing:

buildh32.bat tutor02 /b

I can send you our tested FWH MSVC libs

Image
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
frose
Posts: 327
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Gütersloh
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by frose »

Antonio,

working now with the new libs, thank you :)

Will start a bigger project soon...
User avatar
frose
Posts: 327
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Gütersloh
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by frose »

Antonio,

seems that:

Code: Select all

TRY
   CATCH
END
is not supported in Harbour!

Compiler error:

Code: Select all

Error E0020  Incomplete statement or unbalanced delimiters
What is the complement in Harbour?
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by Antonio Linares »

Frank,

You can use:

/* TRY / CATCH / FINALLY / END */
#xcommand TRY => BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
#xcommand FINALLY => ALWAYS

or simply:

#include "hbcompat.ch"
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
frose
Posts: 327
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Gütersloh
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by frose »

Antonio,

ok, understand, next one:

Code: Select all

#pragma BEGINDUMP
#include <windows.h>
#include "hbapi.h"
   HB_FUNC( NEWGUID16 )
   {
   GUID mguid ;
           if ( CoCreateGuid( &mguid ) != NULL )
   memset( ( LPVOID ) &mguid, '?', sizeof( mguid ) ) ;
           hb_retclen( ( LPVOID ) &mguid, sizeof( mguid ) ) ;
           }
#pragma ENDDUMP
error:

Code: Select all

error C2664: 'hb_retclen': Konvertierung des Parameters 1 von 'LPVOID' in 'const char *' nicht m”glich
        Konvertierung von 'void*' in Zeiger auf nicht-'void' erfordert eine explizite Typumwandlung
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by Antonio Linares »

Frank,

Change this:

hb_retclen( ( char * ) &mguid, sizeof( mguid ) ) ;
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
frose
Posts: 327
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Gütersloh
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by frose »

Antonio,

ok :)

Now I can't link ADS functions, for example:

Code: Select all

REQUEST ADS
What I'm doing wrong? Have seen that Tim solved it, after getting a new ace32.dll from you!?
User avatar
TimStone
Posts: 2536
Joined: Fri Oct 07, 2005 1:45 pm
Location: Trabuco Canyon, CA USA
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by TimStone »

Sorry, but I've been very swamped with end of the year tasks.

Actually, I turned off ADS temporarily. I think I need new libs for Harbour 3.0 to make it work. I'll be back into this the beginning of January. For now, my family and I will be sepending some much needed holiday time together.

Tim
Tim Stone
http://www.MasterLinkSoftware.com
timstone@masterlinksoftware.com
Using: FWH 19.06 with Harbour 3.2.0 / Microsoft Visual Studio Community 2019
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by Antonio Linares »

Frank,

Do you want rddads.lib for Harbour and MSVC ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
frose
Posts: 327
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Gütersloh
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by frose »

Tim,

no problem, all the best for you and your family.

Antonio,

want to make ADS work with Harbpour and MSVC, please send me all I need :P
User avatar
frose
Posts: 327
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Gütersloh
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by frose »

Antonio,

getting this link error with the rddads.lib from here http://code.google.com/p/harbour-and-xh ... b&can=2&q=:

Code: Select all

--------------------Configuration: test_ads_harbour_msvc - Debug--------------------
c:\hb_msvc\LIB\rddads.lib : fatal error LNK1136: Ungültige oder beschädigte Datei.
test_ads_harbour_msvc.EXE - 1 error(s), 0 warning(s)
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by Antonio Linares »

Frank,

Here you have rddads.lib for MSVC:

http://code.google.com/p/harbour-and-xh ... b&can=2&q=

It has been built using this batch file from the folder Harbour\contrib\rddads:

go_vc.bat

Code: Select all

"%ProgramFiles%\Microsoft Visual Studio 10.0\VC"\bin\cl -I..\..\include -I"%ProgramFiles%\Microsoft Visual Studio 10.0"\VC\include -I"%ProgramFiles%\Microsoft SDKs\Windows\v7.0A"\include -c ads1.c
"%ProgramFiles%\Microsoft Visual Studio 10.0\VC"\bin\cl -I..\..\include -I"%ProgramFiles%\Microsoft Visual Studio 10.0"\VC\include -I"%ProgramFiles%\Microsoft SDKs\Windows\v7.0A"\include -c adsfunc.c
"%ProgramFiles%\Microsoft Visual Studio 10.0\VC"\bin\cl -I..\..\include -I"%ProgramFiles%\Microsoft Visual Studio 10.0"\VC\include -I"%ProgramFiles%\Microsoft SDKs\Windows\v7.0A"\include -c adsmgmnt.c
"%ProgramFiles%\Microsoft Visual Studio 10.0\VC"\bin\cl -I..\..\include -I"%ProgramFiles%\Microsoft Visual Studio 10.0"\VC\include -I"%ProgramFiles%\Microsoft SDKs\Windows\v7.0A"\include -c adsx.c
"%ProgramFiles%\Microsoft Visual Studio 10.0\VC"\bin\lib /out:rddads.lib ads1.obj adsfunc.obj adsmgmnt.obj adsx.obj
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
frose
Posts: 327
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Gütersloh
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by frose »

Antonio,

thank you for the rddads.lib.

Now there are three points left:
  • I havn't found the go_vc.bat to build the rddads.lib for myself
  • How to get/generate the suitable ace32.dll? It doesn't work with Borland 'implib ace32.lib ace32.dll' (LNK1136)!
  • I need the 'hbmisc.lib' or/and the 'hbnf.lib' for some functions I'm using
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by Antonio Linares »

Frank,

1. You have to create go_vc.bat yourself with the contents that I have copied in my post.

2. Generate a DEF file from the DLL doing:

c:\bcc582\bin\impdef.exe ace32.def ace32.dll

the create the lib file from the DEF file:

(Microsoft lib.exe)
lib.exe /def:ace32.def /out:ace32.lib /MACHINE:IX86
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
frose
Posts: 327
Joined: Tue Mar 10, 2009 11:54 am
Location: Germany, Gütersloh
Contact:

Re: UE Studio Config - Harbour 3.0, MSVC, FWH

Post by frose »

Antonio,

created the rddads.lib with the newest ADS version 10.10.0.28 (10.00.04):
http://www.filesonic.com/file/u0x5Vfc

The required input files are from the 'Advantage Client Engine Release 10.1 for Windows 32-bit' from here: http://devzone.advantagedatabase.com/dz ... Platform=6:

Image

As you can see in the above screen shot, the ACE contains also an ace32.lib!

I used this ace32.lib successfully in my first Test_ADS_MSVC-Project!

Here is the current revision of my UEStudio application file:

Code: Select all

# --------- Harbour y FWH configuration --------
# --- general --------------------------------------
# $P  - project name
# $Pp - path to project directory
# $Pn - project name
# --- compile --------------------------------------
# $I  - input full name
# $Ip - input path
# $In - input name
# $Ie - input extension
# $O  - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R  - release/debug setting for compiler
# --- build ----------------------------------------
# $T  - target full name
# $Tp - target path
# $Tn - target name
# $O  - output file
# $Op - path to output file
# $On - output filename (without path)
# $Oe - output extension
# $R  - release/debug setting for linker

[Settings]
Target =
Category&01 = DEFAULT RUN CONFIGURATION
Working Directory =.
Command Line Arguments =

Category&02 = Harbour Options
Automatic Memvar Declaration = no|yes
Variables Are Assumed = no|yes
Generate Preprocessed Output = no|yes
Warning Level = 1|2|3|4|0
User Include Path =
User Defines =

Compiler Options =
Linker Options =

Excluded Files = Excludes

[SettingsInfo]
Target = Provides a space for you to specify an output file and location of the program that the linker creates.
Working Directory = Provides a space for you to specify the directory in which executing occurs. If you do not specify a directory, executing occurs in the directory where the executable is located.
Command Line Arguments = Provides a space for you to specify command-line arguments you want to pass to the program at startup.
Compiler Options = Provides a space for you to specify an additional compiler options.
User Defines = Shows the switches the tool will use to build. Use ';' as delimiter.
Linker Options = Provides a space for you to specify an additional linker options.
Excluded Files = This will exclude the file(s) included in this UE project group from the build.

[SettingsReps]
User Defines = @[;|-D%s]
Automatic Memvar Declaration = no=|yes=/a
Variables Are Assumed = no=|yes=/v
Generate Preprocessed Output = no=|yes=/p
User Include Path = ^^@[;|;%s]
User Include Path&1 = ^^@[;| /i%s]
Use Multi Thread Library = no|yes
Warning Level = @/w%s

[Variables]
FWH = c:\fwh
HPATH = c:\hb_msvc
CPATH = c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
# The path where the suitable mspdb100.dll resides:
CCOMMON7 = C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
SDKPATH = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A

# Path for the FiveWin-Libs:
FPATHL = $(FWH)\LIB
# Path for the Harbour-Libs:
# HPATHL = $(HPATH)\LIB\WIN\MSVC
HPATHL = $(HPATH)\LIB
CPATHL = $(CPATH)\LIB
SDKPATHL = $(SDKPATH)\Lib

HOPT = /n /gc0 /q0 $(Compiler Options) /i$(HPATH)\INCLUDE /i$(FWH)\INCLUDE $(User Include Path&1) $(User Defines) $(Automatic Memvar Declaration) $(Variables Are Assumed) $(Generate Preprocessed Output) $(Warning Level)
COPT = -TP -W3 -c -I"$(CPATH)\INCLUDE"

LOPT = /nologo /subsystem:windows /force:multiple /NODEFAULTLIB:libc

# Five Win libraries
LIBS1 = FiveHC32.lib FiveH32.lib
# Harbour Libraries
LIBS2 = ace32.lib hbrtl.lib hbvm.lib gtgui.lib gtwin.lib hblang.lib hbmacro.lib hbrdd.lib rddntx.lib rddcdx.lib rddfpt.lib hbsix.lib
LIBS3 = hbdebug.lib hbcommon.lib hbpp.lib hbwin.lib hbcpage.lib hbct.lib xhb.lib hbpcre.lib png.lib hbzlib.lib hbxpp.lib hbziparc.lib rddads.lib
# VC libraries
LIBS4 = kernel32.lib user32.lib gdi32.lib winspool.lib comctl32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib oledlg.lib winmm.lib
LIBS5 = uuid.lib odbc32.lib odbccp32.lib iphlpapi.lib mpr.lib version.lib wsock32.lib psapi.lib msimg32.lib libcmt.lib oldnames.lib libcpmt.lib
# 3rd Party libraries
# LIBS6 = [i][b]add any user libs here[/b][/i]
# LIBS = $(LIBS1) $(LIBS2) $(LIBS3) $(LIBS4) $(LIBS5) $(LIBS6)
LIBS = $(LIBS1) $(LIBS2) $(LIBS3) $(LIBS4) $(LIBS5)

[Environment]
#PATH = $(HPATH)\BIN;$(CPATH)\BIN;%PATH%
PATH = $(HPATH)\BIN;$(CPATH)\BIN;$(CCOMMON7);%PATH%
INCLUDE = $(FWH)\INCLUDE;$(HPATH)\INCLUDE;$(CPATH)\INCLUDE;$(SDKPATH)\INCLUDE
LIB = $(FPATHL);$(HPATHL);$(CPATHL);$(SDKPATHL)
BuildMode = %UESMode%

[General]
TargetExt = .exe
ReleaseOut = Release
DebugOut = Debug
UseFullPaths = 1
UseDosNames = 0
Excludes = $(Excluded Files)
GenerateEDGroup=$(External Dependencies)
.CPP = .C

[MakeCommands]
run = Execute Application
makef = Show Makefile

[Execute Application]
Title = Execute $T
Cmd0 = $(Command Line Arguments)
Depends = $T
ShowWindow = 1
DisplayConsole = 0

[Show Makefile]
Title=Show makefile
Cmd0=uestudio makefile
ShowWindow=0
DisplayConsole=0

[InsertFiles]

[FileGroups]
FGO = .obj;
FGR = .res;
FGL = .lib;
FGD = .def;

[GroupFormats]
FGO = %s
FGR = %s
FGL = %s

[Build]
Out = $T
Depends = $FGO $FGR
DebugFlag =
ReleaseFlag =
#Cmd0 = LINK $(LOPT) $FGO [i][b]yourfile[/b][/i].res $(LIBS)
#Cmd0 = LINK $(LOPT) $FGO fwdbg.res $(LIBS)
Cmd0 = LINK $(LOPT) $FGO $(LIBS)

[.PRG]
Out = $In.c
DebugFlag = /b
ReleaseFlag = /l
Cmd0 = harbour $I $(HOPT) $R /o$O

IncFiles = 1
CaseSensitive = 0
IncDirs = .;$(INCLUDE);
IncKeyWords = #include;
Comments = /*.*/.//.eol.

[.C]
Out = $In.obj
Cmd0 = cl.exe $(COPT) $I

[.RC]
Out = $In.res
Cmd0 = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\rc.exe -r -fo$O $I

IncFiles = 1
CaseSensitive = 0
IncDirs = .;$(INCLUDE);
IncKeyWords = #include;
Comments = /*.*/.//.eol.
 
Of course there have to be some more tests to be done, but for now the ADS issue is solved :D

Remains the missing 'hbmisc.lib' respectively 'hbnf.lib'

Special thanks for your brilliant support
Post Reply